之前讨论的字符串、列表、元组都是有序对象,本节则重点讨论无序对象:字典与集合。
一.字典
  列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系。例如L=[‘I’,’love’,’Python’],则有L[0]=’I’,L[1]=’love’,L[2]=’Python’,在这里可以认为0是’I’的键,‘I’是键0的内容,则存在一个键值对的关系。字典相对于列表来说更为灵活,列表的键只能是自然数,而字典的键可以是任何变量名。可以将字典理解为灵活的列表。
下面对字典的属性总结如下:
1.字典通过键值读取
2.任意对象的无序集合
3.可变长、异构、任意嵌套
4.属于可变的映射类型,键与值存在一一映射的关系
5.相当于一个散列表
字典的定义
1.定义
di={'w':123,'l':456,'x':789} 键值对:key:value
字典的元素满足键值一一对应,每一个键值对成为一个item。
空字典:d={} 或 d=dict()
2.取值: 索引取关键字di[‘w’]
3.修改:di[‘w’]=’abc’
特点: 无序
    key唯一不可变
           字典是可变的
字典的方法
1.>>> di.fromkeys(['a','b','c'],123) #用给定的键建立新的字符串,每一个键有默认值
{'a': 123, 'b': 123, 'c': 123} #字典的键值关系与有序序列的索引关系差不多
2.di.get('r') #存在则返回值,不存在什么也不返回
3.>>> di.items() #查看字典的每一项
dict_items([('w', 123), ('l', 456), ('x', 789)]) #以列表的形式返回
4.di.keys() #查看字典的所有键,以列表的形式返回
5.di.values() #查看字典的所有值,以列表的形式返回
6.di.pop(‘w’) #指定键删除,返回对应的键值并将之删除。若不存在报错
7.di.popitem() #随机删除某一项,并以元组形式返回
9.di.setdefault('l',123) #类似于get,存在就返回值,不存在就更新(添加)到字典
10.di.update(di1) #将di1字典的内容添加并更新到原来的字典di,无则添加,有则覆盖

集合
一. 集合的定义
set={1,2,3,4} #不重复
>>> set={1,2,2,4}
>>> set
{1, 2, 4}
特性: 唯一性(集合中不能存在可变的内容如列表)
           无序性
>>> set={1,'a',2,4,'b'}
>>> set
{1, 2, 4, 'a', 'b'}
创建一个空集合:A=set()
注意:A={} 是创建一个空字典,而不是集合
二.集合的运算
se1={1,2,3}, se2={2,3,'a'}
并集:| se1|se2 ={1, 2, 3, 'a'}
交集:& se1&se2 ={2, 3}
差集:- se1-se2 ={1} 前面集合减去两个集合重复的部分
与非集:^ se1-se2 ={1, 'a'}

se1.add(5) 添加单个元素
se1.update('asdfg') 添加可迭代对象
se1.remove('f') 指定移除
se1.pop() 随机抛出一个元素
当要取出一个指定的元素是可以把集合转化为序列,然后再取出
list(se)
集合是可变的

总结:
不可变:字符串,元组,数值
可变:列表,字典,集合

三.运算符
算术运算符:+,-,*,/,%,**,//
赋值: =,+=,-=,*=,/=,%=,**=
比较运算符: ==,!=,>,<,>=,<=
成员运算符:in,not in
身份运算符:is,not is
逻辑运算符:and,or,not

运算顺序:
** 幂运算
+,-,*,/,% 算术运算符
<,>,<=,>= 比较运算符
==,!= 比较运算符
=,%=,/=,-=,+=,*=,**= 赋值运算符
is,not is 身份运算符
in,not in 成员运算符
not>and>or 逻辑运算符

Python基础__字典、集合、运算符的更多相关文章

  1. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

  2. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  3. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  4. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  5. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  6. Python基础篇(set集合)

    Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...

  7. Python基础篇(格式化输出,运算符,编码):

    Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s  替换字符串      %d 替换整体数字  ...

  8. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  9. Python基础__函数

    本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍.函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调用 ...

随机推荐

  1. 2018/2/14 设计模式学习笔记(一) 自己实现ArrayList,LinkedList和Iterator,以及在此过程中对于面向对象,面向接口,还有抽象类的一些思考感悟

    因为本人目前为止学习编程不过七个月,所以后面的感悟对于一些大神来说可能嗤之以鼻,但对于一些刚刚入门的萌新来说在理解面向对象的思想上,以及抽象类和接口应该怎么设计等方面应该还是会有所帮助的 首先我们定义 ...

  2. 注册表操作(VC_Win32)

    注册表操作(VC_Win32) 数据类型 注册表的数据类型主要有以下四种:显示类型(在编辑器中)  数据类型  说明 REG_SZ  字符串  文本字符串REG_MULTI_SZ     多字符串   ...

  3. css页面布局之左侧定宽,右侧自适应

    二列布局的特征是侧栏固定宽度,主栏自适应宽度.三列布局的特征是两侧两列固定宽度,中间列自适应宽度. 之所以将二列布局和三列布局写在一起,是因为二列布局可以看做去掉一个侧栏的三列布局,其布局的思想有异曲 ...

  4. vagrant启动报错The following SSH command responded with a no

    vagrant package打包生成box,以这个box为基础模板,打造vagrant环境,启动vagrant报错 angel:vagrant $ vagrant up Bringing machi ...

  5. jQuery(function(){...})与(function($){...})(jQuery)的“兄弟”情结

    记得那时在学习写基于jQuery的插件时,了解到(function($){...})(jQuery)的代码结构,一开始还没发觉,后来百度了解它的语意时,从搜索结果中发现了jQuery(function ...

  6. [翻译]编写高性能 .NET 代码 第二章:垃圾回收

    返回目录 第二章:垃圾回收 垃圾回收是你开发工作中要了解的最重要的事情.它是造成性能问题里最显著的原因,但只要你保持持续的关注(代码审查,监控数据)就可以很快修复这些问题.我这里说的"显著的 ...

  7. spring 组件自动装载示例(@ComponentScan,@Component,@Scope)

    今天学习spring的bean组件装载功能,个人不太喜欢xml文件一个个配置bean的方式,所以主要学习测试注解式的自动装载方式.下面将简单说明下@Component的用法,简单入门示例献给大家.   ...

  8. nginx虚拟域名的配置以及测试验证

    1.保证该机器上安装了nginx 未安装请看:centos/linux下的安装Nginx 2.使用root用户编辑配置文件 vim /usr/local/nginx/conf/nginx.conf 3 ...

  9. 第二十一章 Django的分页与cookie

    第二十一章 Django的分页与cookie 第一课 模板 1.模板的继承 在Template目录下新建模板master.html <!DOCTYPE html> <html lan ...

  10. hdu1698 Just a Hook 线段树

    共有Q个更新,每次更新给更新的区间一个标记,表示该区间是在哪一次被更新,最后统计答案是以最近被更新的值为答案. AC代码: #include<cstdio> const int maxn= ...