python中列表 元组 字典 集合的区别

  列表 元组 集合 字典
英文 list tuple set dict
定义 定义[],数据之间使用,分割 定义(),数据之间用,分割 定义用 {} 或 set() 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割
是否可读写 读写 只读 读写 读写
可否重复
数据类型 任意类型对象 任意类型对象 任意类型对象 任意类型对象
存储方式 键(不能重复) 键值对(键不能重复)
是否有序 有序 有序 无序 无序,自动正序
初始化 [1,'a'] (1,'a') {1,2} {'a':1,'b':'kk'}
空值的定义 [] 或者 list() ()或 tuple() set() {}或者dict()
支持的操作 索引,切片,合同,删除,修改 索引

S | T 并   S - T 差

S & T 交  S ^ T 补

S <= T 或 S < T

S >= T 或 S > T

S |= T 并

S &= T 交

S ^= T 补

增、删、改、查

key in d:键值key是否在d中,是返回True,否则返回False。

读取 通过偏移读取  通过偏移读取  S.pop()随机返回S的一个元素,更新S,若S为空产生KeyError异常

通过键而不是偏移量来读取 

查 get(),setdefault(),has_key()

扫描二维码关注公众号,回复: 4778697 查看本文章

通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

d[k]:返回关键字对于的值

添加

append(object)函数 向列表中追加据,

会把添加的数据放在列表中的最后一个位置

insert(index,object)函数 向列表中插入一条数据

extend(iterable)函数  可以将另外一个列表中的数据添加到该表中

             iterable:可迭代对象  列表、字符串、字典、元组

不能修改 S.add(x) 如果x不在集合S中,将x增加到S d['sex'] = 'man'
修改

列表[索引]=数据 classname[1]='new'

index(object:数据, start:开始搜索的位置,stop:结束搜索的位置) 

不能修改 集合元素不可更改 d['Age'] = 8;
删除

pop删除末尾元素 classname.pop()

pop删除指定元素pop(i) classname.pop(1)

del list_1[4]

使用remove(object)函数,根据数据内容删除  要删除的内容必须在列表中,否则会报错

移除列表中所有的数据

list_1.clear()

不能修改

S.discard(x)移除S中元素x,如果x不在集合S中,不报错

S.remove(x)移除S中元素x,如果x不在集合S中,产生KeyError异常

S.clear()移除S中所有元素

删 pop()
'''通过指定的key值,删除字典的一个键值对
返回被删除的key对应的value

del dict['Name']; # 删除键是'Name'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典

排序

升序  列表.sort()

降序 列表.sort(reverse=True)

倒序,反转 列表.reverse()

不能修改
统计

len(列表) 列表的长度

列表.count(数据)  数据在列表中出现的次数

len(元组) 元组的长度

列表.count(数据)  数据在元组中出现的次数

len(S)返回集合S的元素个数

len():返回字典中键—值对的数量

应用场景

1、列表存储相同类型的数据
2、通过迭代遍历,在循环内部,

针对列表中的每一项元素,执行相同的操作

1.查找和插入的时间随着元素的增加而增加 
2.占用空间小,浪费内存很少 
所以,dict是用空间来换取时间的一种方法

1、函数的参数和返回值,一个函数可以接收任意多个参数,一次返回多个数据
2、格式字符串,格式化字符串后面的()本质就是一个元组
3、让列表不可以被修改(保护数据安全)

1.比列表操作速度快 
2.对数据“写保护“ 
3.可用于字符串格式化中 
4.可作为字典的key

包含关系比较

x in S 判断S中元素x, x在集合S中,返回True,否则返回False

x not in s

数据去重:集合类型所有元素无重复

set(x)将其他类型变量x转变为集合类型

zip函数可以实现两个类别组合成字典

1.查找和插入的速度极快,不会随着key的增加而增加 
2.需要占用大量的内存,内存浪费多 

序列 : 序列是一个基类类型   可以衍生为字符串类型、元组类型、列表类型

通用操作符: x in s 如果x是序列s的元素,返回True,否则返回False

                      x not in s 如果x是序列s的元素,返回False,否则返回True

                     s + t 连接两个序列s和t

                     s*n 或 n*s 将序列s复制n次

                    s[i] 索引,返回s中的第i个元素, i是序列的序号

                  s[i: j] 或 s[i: j: k] 切片,返回序列s中第i到j以k为步长的元素子序列

通用方法和函数: len(s) 返回序列s的长度,即元素个数

                           min(s) 返回序列s的最小元素, s中元素需要可比较

                           max(s) 返回序列s的最大元素, s中元素需要可比较

                            s.index(x) 或
                             s.index(x, i, j) 返回序列s从i开始到j位置中第一次出现元素x的位置

                            s.count(x) 返回序列s中出现x的总次数

如有疑问或者不对的地方,欢迎留言评论

猜你喜欢

转载自blog.csdn.net/zhanglei_admin/article/details/84997610