字典
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
字典的每个键值“key=>value”对用冒号“:”分割,每个对之间用逗号“,”分割,整个字典包括在花括号“{}”中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
1.创建字典:
直接创建
dict() 构造函数可以直接从键值对序列里创建字典。
>>> dict([(‘sape’, 4139), (‘guido’, 4127), (‘jack’, 4098)])
{‘sape’: 4139, ‘guido’: 4127, ‘jack’: 4098}
此外,字典推导式可以从任意的键值表达式中创建字典
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
当关键字是简单字符串时,有时直接通过关键字参数来指定键值对更方便
>>> dict(sape=4139, guido=4127, jack=4098)
{‘sape’: 4139, ‘guido’: 4127, ‘jack’: 4098}
2.修改字典:向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
删除键 del dict[key] ,dict.pop(key);删除字典:del dict
清空字典 dict.clear()
随机返回并删除字典中的最后一对键和值:popitem()
dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
dict[‘Age’] = 8 # 更新 Age
dict[‘School’] = “菜鸟教程” # 添加信息
print ("dict[‘Age’]: ", dict[‘Age’])
print ("dict[‘School’]: ", dict[‘School’])
以上实例输出结果:
dict[‘Age’]: 8
dict[‘School’]: 菜鸟教程
查找/访问:dict[key]
检查字典中是否存在一个特定键,可使用 in 关键字:key in dict
通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> dict.get(‘Thomas’)
>>> dict.get(‘Thomas’, -1)
-1
特性:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
内置函数:
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,以可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
集合set
集合是由不重复元素组成的无序的集。它的基本用法包括成员检测和消除重复元素。集合对象也支持像 联合,交集,差集,对称差分等数学运算。
创建set():
花括号或 set() 函数可以用来创建集合。注意:要创建一个空集合你只能用 set() 而不能用 {},因为后者是创建一个空字典
直接创建:set([list])
a = set(‘abracadabra’)
>>>a
{‘a’, ‘r’, ‘b’, ‘c’, ‘d’}
重复元素在set中自动被过滤
集合也支持推导式形式
>>> a = {x for x in ‘abracadabra’ if x not in ‘abc’}
>>> a
{‘r’, ‘d’}
运算:
a&b:a和b的交集
a|b:a和b的并集
a-b:a减去a和b的交集
a^b: 不同时包含于a和b的元素
基本操作:
s.add( x ) | 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作 |
---|---|
s.update( x ) | 添加元素,且参数可以是列表,元组,字典等 |
s.remove( x ) | 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误 |
s.discard( x ) | 移除集合中的元素,且如果元素不存在,不会发生错误 |
s.pop() | 随机删除集合中的一个元素,在交互模式,pop 是删除排序后的集合的第一个元素 |
len(s) | 计算集合 s 元素个数 |
s.clear() | 清空集合 s |
x in s | 判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False |
>>>thisset = set((“Google”, “Runoob”, “Taobao”))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, ‘Google’, ‘Taobao’, ‘Runoob’}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, ‘Google’, ‘Taobao’, ‘Runoob’}