一、字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。
d = {
key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
d = {
'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此创建字典:
dict1 = {
'abc': 456 }
dict2 = {
'abc': 123, 98.6: 37 }
1、访问字典里的值
d = {
'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("d['Name']: ", d['Name'])
print ("d['Age']: ", d['Age'])
'''
d['Name']: Runoob
d['Age']: 7
'''
2、修改字典
d = {
'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
d['Age'] = 8 # 更新 Age
d['School'] = "华电" # 添加信息
print ("d['Age']: ", d['Age'])
print ("d['School']: ", d['School'])
'''
d['Age']: 8
d['School']: 华电
'''
3、删除字典元素
d = {
'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del d['Name'] # 删除键 'Name'
d.clear() # 清空字典
del d # 删除字典
4、字典内置函数&方法
序号 | 函数 | 描述 |
---|---|---|
1 | len(dict) |
计算字典元素个数,即键的总数。 |
2 | str(dict) |
输出字典,以可打印的字符串表示。 |
3 | type(variable) |
返回输入的变量类型,如果变量是字典就返回字典类型。 |
4 | radiansdict.clear() |
删除字典内所有元素 |
5 | radiansdict.copy() |
返回一个字典的浅复制 |
6 | radiansdict.fromkeys() |
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
7 | radiansdict.get(key, default=None) |
返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
8 | key in dict |
如果键在字典dict里返回true,否则返回false |
9 | radiansdict.items() |
以列表返回可遍历的(键, 值) 元组数组 |
10 | radiansdict.keys() |
返回一个迭代器,可以使用 list() 来转换为列表 |
11 | radiansdict.setdefault(key, default=None) |
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
12 | radiansdict.update(dict2) |
把字典dict2的键/值对更新到dict里 |
13 | radiansdict.values() |
返回一个迭代器,可以使用 list() 来转换为列表 |
14 | pop(key[,default]) |
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
15 | popitem() |
随机返回并删除字典中的最后一对键和值。 |
二、集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
parame = {
value01,value02,...}
set(value)
1、添加元素
s.add( x )
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
thisset = set(("Google", "Runoob", "Taobao"))
thisset.add("Facebook")
print(thisset)
#{'Taobao', 'Facebook', 'Google', 'Runoob'}
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等。
s.update( x1, x2, ... )
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'}
2、移除元素
s.remove( x )
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
thisset = set(("Google", "Runoob", "Taobao"))
thisset.remove("Taobao")
print(thisset)
#{'Google', 'Runoob'}
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。
s.discard( x )
thisset = set(("Google", "Runoob", "Taobao"))
thisset.discard("Facebook") # 不存在不会发生错误
print(thisset)
#{'Taobao', 'Google', 'Runoob'}
我们也可以设置随机删除集合中的一个元素
s.pop()
thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
x = thisset.pop()
print(x)
#Runoob
多次执行测试结果都不一样。
set 集合的 pop
方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
3、计算集合元素个数
len(s)
thisset = set(("Google", "Runoob", "Taobao"))
len(thisset)
#3
4、清空集合
s.clear()
thisset = set(("Google", "Runoob", "Taobao"))
thisset.clear()
print(thisset)
#set()
5、判断元素是否在集合中存在
x in s
thisset = set(("Google", "Runoob", "Taobao"))
"Runoob" in thisset
#True
"Facebook" in thisset
#False
6、集合内置方法完整列表
方法 | 描述 |
---|---|
add() |
为集合添加元素 |
clear() |
移除集合中的所有元素 |
copy() |
拷贝一个集合 |
difference() |
返回多个集合的差集 |
difference_update() |
移除集合中的元素,该元素在指定的集合也存在。 |
discard() |
删除集合中指定的元素 |
intersection() |
返回集合的交集 |
intersection_update() |
返回集合的交集。 |
isdisjoint() |
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() |
判断指定集合是否为该方法参数集合的子集。 |
issuperset() |
判断该方法的参数集合是否为指定集合的子集 |
pop() |
随机移除元素 |
remove() |
移除指定元素 |
symmetric_difference() |
返回两个集合中不重复的元素集合。 |
symmetric_difference_update() |
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() |
返回两个集合的并集 |
update() |
给集合添加元素 |
三、序列
序列类型包括字符串、列表、元组、集合和字典,这些序列支持一些通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作。
函数 | 描述 |
---|---|
list(sub) |
把一个可迭代对象转换为列表。 |
tuple(sub) |
把一个可迭代对象转换为元组。 |
str(obj) |
把obj对象转换为字符串 |
len(s) |
返回对象(字符、列表、元组等)长度或元素个数。 |
max(sub) |
返回序列或者参数集合中的最大值 |
min(sub) |
返回序列或参数集合中的最小值 |
sum(iterable[, start=0]) |
返回序列iterable与可选参数start的总和。 |
sorted(iterable, key=None, reverse=False) |
对所有可迭代的对象进行排序操作。 |
reversed(seq) |
函数返回一个反转的迭代器。 |
enumerate(sequence, [start=0]) |
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中 |
zip(iter1 [,iter2 [...]]) |
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。 |