字典
python中的字典是一种可变、无序的容器类型,可变即字典中的元素增删改,无序即不能根据下标(索引)来获取其中的元素。字典中的每个元素都是由 键:值 的形式,一个字典中的键必须是由不可变元素构成,且不能重复,值可以是任意类型。
字典方法:
方法 | 描述 |
---|---|
radiansdict.clear() | 删除字典内所有元素 |
radiansdict.copy() | 返回一个字典的浅复制 |
radiansdict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
radiansdict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
radiansdict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
radiansdict.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
radiansdict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
radiansdict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
radiansdict.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
dict.pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值 |
dict.popitem() | 随机返回并删除字典中的一对键和值(一般删除末尾对) |
dict1 = {"name":"lily","age":14} #创建一个字典
list1 = ["score","money"]
print("score" in dict1) #成员测试,对字典进行的成员测试是对字典键的检测
dict2 = dict1.copy() #浅复制,实际创建了一个新的字典,两个字典的值相同
print(dict1 == dict2)
print(dict2 is dict1)
#dict.fromkeys(seq,[value])创建一个新的字典,以seq中的每个元素做键,vlaue做值,如果不传入value,默认None
dict3 = dict.fromkeys(list1,100)
print(dict3)
#dict.get(key,[value]) 获取key的值,当不传入value时如果key不存在,返回None,当传入value时如果key不存在,返回value
print(dict1.get("age",20))
print(len(dict1)) #获取dict1中元素个数
#dict.items() 将dict中的每一个键值对以元组(键,值)的形式返回一个列表
print(dict1.items())
#dict.keys() 将dict中的所有键返回一个列表
print(dict1.keys())
#dict.values() 将dict中的所有值返回一个列表
print(dict1.values())
#dict.pop(key[,default])|删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
print(dict1.pop("age"))
#dict.popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)
print(dict2.popitem())
#dict.update(dict2)把字典dict2的键/值对更新到dict里
dict1.update(dict3)
print(dict1)
#dict.setdefault(key) --> 添加键值对,键是key,值是None
#dict.setdefault(key,value) --> 添加键值对,键是key,值是value
#dict:key存在的时候,对字典不会有任何操作(不会修改key对应的值)
dict1.setdefault("age",23)
print(dict1)
#dict1[key]=value 当key存在时,改变对应的值,当key不存在时,添加新的键值对 key:value
dict1["gender"] = "男"
print(dict1)
#dict.clear() 清空字典
dict1.clear()
print(dict1)
执行结果:
False
True
False
{'score': 100, 'money': 100}
14
2
dict_items([('name', 'lily'), ('age', 14)])
dict_keys(['name', 'age'])
dict_values(['lily', 14])
14
('age', 14)
{'name': 'lily', 'score': 100, 'money': 100}
{'name': 'lily', 'score': 100, 'money': 100, 'age': 23}
{'name': 'lily', 'score': 100, 'money': 100, 'age': 23, 'gender': '男'}
{}
集合
集合是可以同时存储多个数据,可变的,无序的,且元素是唯一的。唯一是值不能有重复的元素,自动去重,这一点经常用来对序列元素去重。
集合中的元素只能是不可变的数据。
set1 = {1, 2, 3,2,3}
print(set1)
set2 = {} # 这个是空的字典
# 2.集合的增删改查
# a.查(获取元素)
"""
集合不能单独的获取一个元素,也不能切片,只能通过for-in来遍历
"""
for x in set1:
print(x)
# b.增(添加元素)
"""
集合.add(元素) --> 在集合中添加一个元素
"""
set1 = {1, 2, 3}
set1.add(4)
print(set1)
"""
集合1.update(序列) --> 将序列中的元素添加到集合1中
"""
set1.update({'a', 'b'})
print(set1)
set1.update('0987')
print(set1)
set1.update(['abc', 'aaa'])
print(set1)
set1.update({'name': 1, 'age': 18}) # 字典只添加key
print(set1)
# 3.删(删除元素)
"""
集合.remove(元素) --> 删除指定的元素
"""
set1.remove(1)
print(set1)
# 4.改(集合不能改)
执行结果:
{1, 2, 3}
1
2
3
{1, 2, 3, 4}
{'b', 1, 2, 3, 4, 'a'}
{1, 2, 3, 4, '0', 'a', '8', 'b', '9', '7'}
{1, 2, 3, 4, 'abc', '0', 'a', '8', 'b', 'aaa', '9', '7'}
{1, 2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}
{2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}
集合可以进行数学集合运算
# 集合相关的运算: 是否包含,交集、并集、差集、补集
# 1.包含
"""
集合1 >= 集合2 ---> 判断集合1之中是否包含集合2
集合2 <= 集合2 ---> 判断集合2之中是否包含集合1
"""
set1 = {1, 2, 3, 4, 5, 10}
set2 = {3, 4, 1}
print(set1 >= set2)
# 2.交集 -> &
"""
& --> 求两个集合公共的部分
"""
set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 10, 20}
print(set1 & set2)
# 3.求并集
"""
| --> 求两个集合的和
"""
print(set1 | set2)
# 4.求差集
"""
集合1-集合2 --> 求集合1中除了集合2以外的部分
"""
print(set1 - set2)
# 5.求补集
"""
^ --> 求两个集合除了公共部分以外的部分
"""
print(set1 ^ set2)
执行结果
True
{1, 2, 3}
{1, 2, 3, 4, 5, 10, 20}
{4, 5}
{20, 4, 5, 10}
网友评论