1.1 字典 dict
1.2 集合 set
总结
字典 dict 使用键-值(key-value)存储,用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中类似Java中的map。
#格式一般如下
dict = {
key1 : value1, key2 : value2 }
dict = {
'a':1,'b':2,'c':3,'b':4,(1,2):5}
print(type(dict))
print(dict)
#控制台输出
<class 'dict'>
{
'a': 1, 'b': 4, 'c': 3,(1,2):5}
从上面可以看出,键一般是唯一的,当后面有重复的键添加时,会覆盖之前的键。(这一点也和java中的map类似)。
且dict的键必须是不可变的,如字符串,数字或元组。不过我现在不太懂dict的键使用元组有什么用,元组好像也不能拆分,而且元组中的数据类型也必须是不可变的。
而如果用get方法用字典里没有的键访问数据,会返回None。
dict = {
'a':1,(2,3):(6,7),'c':3,'b':4}
print(dict.get('haha'))
#控制台输出
None
如果直接取某个键的值,则会报错。
dict = {
'a':1,(2,3):(6,7),'c':3,'b':4}
print(dict[22])
#控制台输出
File "Test3.py", line 2, in <module>
print(dict[22])
KeyError: 22
也可以用 in 判断该键是否存在,返回一个布尔类型的值。
dict = {
'a':1,(2,3):(6,7),'c':3,'b':4}
print(22 in dict)
print('c' in dict)
#在Python中,如果键是str类型,引用时必须要加引号,不然会报错
#控制台输出
False
True
Python字典包含了以下内置函数
Python字典包含了以下内置方法:
set = set([1,2,3,2])
print(type(set))
print(set)
#控制台输出
<class 'set'>
{
1, 2, 3}
两个set比较可以直接做加减。
set1 = set([1,2,3,2])
set2 = set([1,2,3,2,5])
print(set2-set1)
print(set1-set2)
#控制台输出
{
5}
set()
此外,还有交集&,和并集 | 。
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。