-pyhon-无序数据类型

pyhon-无序数据类型

chenyang 60天前 109

集合(Set)

  • 集合是无序的,无序也就没有索引,不能进行索引相关的操作。无序,python解释器就不能通过索引(位置)区分集合中的相同元素,所以集合中不能有相同的元素
  • 集合用大括号{}表示。
  • 集合中元素的数据类型可以不同,但集合中不能嵌套列表、元组、集合、字典。
a={1,1,3}
print(a)  #{1,3}  会自动去掉重复的元素

a={1,"ok"}   #数据类型可以不同
print(a)   #{1, 'ok'}

a={1,"ok",[1,2]}   #报错  集合中元素的数据类型可以不同,但集合中不能嵌套列表、元组、集合、字典。
print(a)
  • 集合可以使用in、not  in进行成员判断。

集合之间可以进行集合运算

a={1,2,3}
b={1,2,6}

print(a|b)  #求并集  {1, 2, 3, 6}
print(a&b)  #求交集   {1, 2} 
print(a-b)  #求差集(a中有,b中没有)  {3}
print(a^b)  #并集减去交集,即把a、b独有的元素组成一个集合   {3, 6}

| 是python的逻辑或,a或b,即并集
& 是python的逻辑与,a且b,a、b中都要有,即交集

python的逻辑运算符
and、& 与
or、| 或
not 非(python中,逻辑非不能用!表示

字典(Dictionary)

  • 字典是无序的。
  • 字典中一个键值对就是一个元素。因为是用key来标识元素,所以同一个字典中,key不能相同(不会报错,但后面的值会覆盖前面的值)。
  • 字典中的key、value的数据类型可以不同,但key必须是不可变的数据类型,比如数字、字符串、元组。
  • 字典用大括号{}表示。

字典的常用函数

函数描述
dict.keys()获取所有的key
dict.values()获取所有的value
dict.items()获取所有的键值对
dict1.update(dict2)把dict2中的键值对全部添加到dict1中,dict1会改变,dict2不变。此函数返回值是void。
dict.copy()复制,返回dict的一个副本。
dict.clear()清空字典,删除所有键值对,只保留一个空字典
dict.has_key(key)检测字典中是否有指定的key,返回bool值
dict.get(key,default)获取key对应的value,若key不存在,返回指定的默认值
dict.setdefault(key[,default])和get(key,default)一样,只不过key不存在时,会先往字典中添加这个键值对,然后返回值
dict.pop(key[,default])删除key对应的键值对,并返回这个键值对中的value。若key不存在,返回设置的default的值。
dict.popitem()删除字典中的最后一个键值对,并返回这个键值对中的value。虽然字典是无序的,但这个函数删除的确实是最后添加的一个键值对。
dict.fromkeys(seq[,value])创建并返回一个新字典。seq是序列,使用序列中的元素作为key,value可选,为所有键值对设置默认value。这个函数比较特殊,前面的dict都是字典类的实例,调用的是实例方法。

在python中,dict是一个类,表示字典。fromkeys()是dict类的静态方法,直接通过类名调用。

小结

1、python中,序列(字符串、列表、元组)是有序的,集合、字典都是无序的。
有序的就有索引,可进行索引相关的操作,可用索引来标识、区分元素,所以元素可重复。
集合中不能有重复的元素,字典中不能有重复的key。
2、数字、字符串、元组是不可变的,对它们操作,返回的往往是副本,本身不会改变。
列表、集合、字典都是可变的,对它们操作,往往就是对本身进行操作。(python也提供了不可变的集合)
3、列表用[]表示,元组用()表示,列表、元组都有索引、可进行索引相关操作,区别是列表可改变,元组不可改变。
使用内置函数list()、tuple()可实现列表、元组的相互转换。
可以先把列表转换为元组,来保护列表中的元素不被修改,操作完再转换回列表。
可以把元组转换为列表,达到修改元组的目的,操作完再转换回元组。
4、集合、字典都是用{}表示,{}表示空字典,空集合要使用set()来创建。
5、字符串、列表、元组、集合、字典都具有多个元素,它们都可以使用python内置函数 len(x) 来获取x的元素个数。

最新回复 (0)
返回
发新帖
0