字典

字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。

一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。

# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

# 空字典
dict2 = {}

dict3 = dict()

字典操作:增

key 值查找

如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

dict1['name'] = 'Rose'
# 结果:{'name': 'Rose', 'age': 20, 'gender': '男'}
print(dict1)

dict1['id'] = 110

# {'name': 'Rose', 'age': 20, 'gender': '男', 'id': 110}
print(dict1)

字典操作:删

del( ) / del

删除字典或删除字典中指定键值对。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

del dict1['gender']
# 结果:{'name': 'Tom', 'age': 20}
print(dict1)

clear( )

清空字典

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

dict1.clear()
print(dict1)  # {}

字典操作:改

key 值查找

如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对。

字典操作:查

key 值查找

如果当前查找的key存在,则返回对应的值;否则则报错。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

print(dict1['name'])  # Tom
print(dict1['id'])  # 报错

get( )

如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

print(dict1.get('name'))  # Tom
print(dict1.get('id', 110))  # 110
print(dict1.get('id'))  # None

keys( )

查找字典中所有的key。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

print(dict1.keys())  
# dict_keys(['name', 'age', 'gender'])

values( )

查找字典中所有的value。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

print(dict1.values())  # dict_values(['Tom', 20, '男'])

items( )

查找字典中的所有键值对。返回元组,元组数据1是key,元组数据2是value。

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

print(dict1.items())  # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])

字典的循环遍历

遍历字典 key

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

for key in dict1.keys():
    print(key)

遍历字典 value

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

for value in dict1.values():
    print(value)

遍历字典元素

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

for item in dict1.items():
    print(item)

遍历字典键值对

dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

for key, value in dict1.items():
    print(f'{key} = {value}')

集合

  • 创建集合使用{}set()
  • 但是如果要创建空集合只能使用set(),因为{}用来创建空字典
  • 集合可以去重
  • 集合数据是无序的,故不支持下标
s1 = {10, 20, 30, 40, 50}
print(s1)

s2 = set('abcdefg')
print(s2)

s3 = set()
print(type(s3))  # set

集合操作:增加

add( )

追加单个数据。集合有去重功能,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。

s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)  # {100, 10, 20}

update( )

追加的数据是序列。

s1 = {10, 20}
# s1.update(100)  # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)

集合操作:删除

remove( )

删除集合中的指定数据,如果数据不存在则报错。

s1 = {10, 20}

s1.remove(10)
print(s1)

s1.remove(10)  # 报错
print(s1)

discard( )

删除集合中的指定数据,如果数据不存在也不会报错。

s1 = {10, 20}

s1.discard(10)
print(s1)

s1.discard(10)
print(s1)

pop( )

随机删除集合中的某个数据,并返回这个数据。

s1 = {10, 20, 30, 40, 50}

del_num = s1.pop()
print(del_num)
print(s1)

集合操作:查找数据

  • in:判断数据在集合序列
  • not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50}

print(10 in s1)
print(10 not in s1)