目录
一、集合
python中集合(set)本身是可变类型,但是python要求放入集合中的元素必须是不可变类型,集合类型与列表和远足类型的区别就是,集合的元素无序但必须唯一。
1.1 创建集合
集合的表现形式为一组包括在中括号“[]”中由逗号“,”分割元素。使用大括号“{}”可以直接创建集合。
set_one = {1,1.1,'a',(2,5)}
集合与列表和元组不同,通过内置函数set()可以创建集合,函数的参数列可以为空。但是当使用{}创建集合时不能创建空集合。若使用set()函数创建非空集合需为该函数传入可迭代对象。
s1 = set([1,5,1]) #传入列表
s2 = set((2,8,5)) #传入元组
s3 = set('abc') #传入字符串
s4 = set(range(5)) #传入整数列表
print(s1)
print(s2)
print(s3)
print(s4)
运行结果:
1.2 集合的常见操作
常见方法 | 功能说明 |
add(x) | 向集合中添加元素x,若x已经存在时不做处理 |
remove(x) | 删除集合中的元素x,若x不存在则抛出KeyError异常 |
discard(x) | 删除集合中的元素x,若x不存在则不做处理 |
pop() | 随机返回集合中的一个元素,同时删除该元素,若集合为空,在则抛出KeyError异常 |
chear() | 清空集合 |
copy() | 复制集合,返回值为集合 |
isdisjoint(T) | 判断集合与集合T之间是否有相同元素,没有返回Ture,有返回False |
1.3 集合推导式
集合依然可以利用推导式创建,集合推导式的格式与列表推导式格式相似,区别在于集合推导式外侧为大括号“{}”
{exp for x in set if cond}
以上格式中遍历的可以时集合或者其他的迭代对象。集合推导式的其他格式可以通过列表推导式类比python学习笔记(10)——组合数据类型(1)
二、字典
python中的字典以“键值对”的形式组织数据,利用“键”快速查找“值”,这个过程称之为映射。
2.1创建字典
字典的表现类型为一组包含在大括号“{}”中的键值对,每一个键值对为一个字典元素,每个元素通过逗号“,”分割,每对键值对通过冒号“:”隔开。
{键1:值1,键2:值2,...键n:值n}
字典的值可以是任意类型,但键不能是列表或字典类型。字典像集合一样使用“{}”包裹元素,因此字典也具有集合的特点:字典元素无序,键/值必须唯一。
字典可以通过"{}"直接创建,也可以通过内置函数dict()创建字典
d1 = {} #创建空字典
d2 = {'A':'123','B':'456','C':'789'}
d3 = dict() #创建空字典
d4 = dict({'A':'123','B':'456','C':'789'})
2.2 字典的访问
字典变量[键]
示例代码:
ct({'A':'123','B':'456','C':'789'})
print(d1['B'])
运行结果:
也可以通过使用内置函数get(),根据键从字典中获取对应的值,若指定的键不存在则会返回默认的值(default)。语法格式:
d.get(key[,default])
d1 = dict({'A':'123','B':'456','C':'789'})
print(d1.get('A'))
运行结果:
字典设计的数据分为键、值和元素(键值对),除了直接利用键访问值之外,还可以通过访问字典中所有键、值和元素的内置函数keys()、values()、items()其三者的返回值都是可迭代对象,利用循环可以遍历这些对象。
示例代码:
dic = dict({'A':'123','B':'456','C':'789'})
print(dic.keys()) #获取所有的键
print(dic.values()) #获取所有的值
print(dic.items()) #获取所有的元素
for key in dic.keys(): #遍历keys的对象
print(key)
运行结果:
2.3 字典元素的添加与修改
字典支持通过为指定的键值或使用update()的方法添加或修改元素。
1.字典元素的添加
当字典中不存在某个键时新增该元素
字典变量[键] = 值
add_dict = {'name':'Tom','age':'21','height':185}
add_dict['weight'] = 70 #通过使用[]的方法增加元素
add_dict.update(gender='boy') #通过使用update的方法添加元素
print(add_dict)
运行结果:
2.字典元素的修改
修改字典元素的本质时通过键获取值,再重新对元素进行赋值。
add_dict = {'name':'Tom','age':21,'height':185}
add_dict.update(name = 'jake')
add_dict['age'] = 23
print(add_dict)
运行结果:
2.4 字典元素的删除
1.pop()
根据指定键删除字典中的指定元素,若删除成功,该方法返回目标元素。
add_dict = {'name':'Tom','age':21,'height':185}
print(add_dict.pop('name'))
print(add_dict)
运行结果:
2.popitem()
随机删除字典中的元素,因为字典元素本身无序,没有第一项和最后一项之分,导致的随机删除。若删除成功popitem()返回被删除的元素。
add_dict = {'name':'Tom','age':21,'height':185}
print(add_dict.popitem())
print(add_dict)
运行结果:
3.clear()
清空字典中的元素
add_dict = {'name':'Tom','age':21,'height':185}
add_dict.clear()
print(add_dict)
运行结果:
2.5 字典推导式
语法格式:
{new_key;new_value for key,value in dict.items()}
add_dict = {'name':'Tom','age':21,'height':185}
new_dict = {value : key for key,value in add_dict.items()}
print(add_dict)
print(new_dict)
运行结果: