目录
4.查找数据(in / not in)
一、元组
可以一次存储多个数据,尽可能保证是相同类型
数据不能更改
1.格式
(数据1, 数据2, 数据3,......)
- 多个数据的元组
t1 = (10, 20, 30)
- 单个数据的元组
t2 = (10, )
→ 如果定义的元组只有一个数据,其后也要加逗号,否则t2数据类型为此单个数据的数据类型
t = (10, )
print(type(t)) # <class 'tuple'>
t = (10)
print(type(t)) # <class 'int'>
t = ('hi', )
print(type(t)) # <class 'tuple'>
t = ('hi')
print(type(t)) # <class 'str'>
2.查找(元组只支持查找操作)
2.1按下标查找数据
tuple = ('a', 'b', 'c', 'd')
print(tuple[0]) # a
2.2index()
查找某个数据,如果数据存在返回对应的下标,否则报错。
tuple = ('a', 'b', 'c', 'd')
print(tuple.index('a')) # 0
print(tuple.index('aa')) # 报错
2.3count
统计某个数据在当前元组出现次数
tuple = ('a', 'a', 'b', 'c', 'd')
print(tuple.count('a')) # 2
2.4len
统计元组中数据个数(元组长度)
tuple = ('a', 'a', 'b', 'c', 'd')
print(len(tuple)) # 5
3.元组中数据的修改
如果元组中有列表,可以修改列表中的数据
tuple1 = (1, 2, [3, 4, 5], 6)
tuple1[2][0] = 2
print(tuple1) # (1, 2, [2, 4, 5], 6)
二、字典
字典中的数据都以键值对(key)的形式出现,字典数据和数据顺序无关,即字典不支持下标,只需要按照对应键的名字查找数据即可
数据可以修改
1.格式
- 大括号
- 以键值对形式存在
- 各键值对间用逗号隔开
# 有数据字典
dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict)
# 空字典
dict2 = {}
# 或
dict3 = dict()# 用dict函数
2.增/改
语法
字典序列名[key] = 值
注:如果key存在则修改这个key对应的值,若不存在则新增键值对
dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
dict1['name'] = 'Lucy' # 改
dict1['gender'] = 'woman' # 改
dict1['age'] = 20 # 改
dict1['qualification'] = 'undergraduate' # 增
print(dict1) # {'name': 'Lucy', 'gender': 'woman', 'age': 20, 'qualification': 'undergraduate'}
3.删
3.1del() / del
删除字典或删除字典中指定键值对
dict1 = {'name': 'Mike', 'gender': 'man', 'age': 18}
del dict1['age']
print(dict1) # {'name': 'Lucy', 'gender': 'woman'}
若未查找到指定键值对,则报错
3.2clear()
清空字典
4.查
4.1key值查找
存在则返回数据,不存在报错
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0['name'])
print(dict0['id'])
4.2函数
- get()
查找目标可替代对象当前对应的值
语法
字典序列名.get(key,默认值)
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.get('name')) # Mike
print(dict0.get('id', 'Tom')) # Tom
print(dict0.get('id')) # None
注:如果当前查找的key不存在则返回默认值,若省略第二个参数,则返回None
- keys()
查找字典中所有可替代对象(key),并返回
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.keys()) # dict_keys(['name', 'gender', 'age'])
- values()
查找字典中所有可替代对象(key)当前对应值,并返回
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.values()) # dict_values(['Mike', 'man', 18])
- items()
查找字典中所有键值对,并返回,其中的数据是元组,元组数据1是key,元组数据2是key对应的值
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
print(dict0.items()) # dict_items([('name', 'Mike'), ('gender', 'man'), ('age', 18)])
5.字典的循环遍历
5.1遍历字典的key
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有key值
'''
name
gender
age
'''
for key in dict0.keys():
print(key)
5.2遍历字典的value
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有key当前对应的值
'''
Mike
man
18
'''
for value in dict0.values():
print(value)
5.3遍历字典的元素(键值对)
dict0 = {'name': 'Mike', 'gender': 'man', 'age': 18}
# 返回所有键值对
'''
('name', 'Mike')
('gender', 'man')
('age', 18)
'''
for item in dict0.items():
print(item)
5.4遍历字典的键值对(拆包)
#将键值对中元组数据进行拆分,拆成key + value
'''
name : Mike
gender : man
age : 18
'''
for key, value in dict0.items():
print(f'{key} : {value}')
三、集合
1.格式
可以用{ }或set( )创建集合,但若要创建空集合只能用set( ),<{ }用来创建空字典>
集合有去重性,即集合中的元素没有重复的
集合有可变性
set1 = {1, 2, 3, 4, 5, 6}
print(set1) # {1, 2, 3, 4}
set2 = {20, 24, 15, 67, 58, 64, 5, 34, 90}
print(set2) # {64, 34, 67, 58, 5, 15, 20, 24, 90}
set3 = {1, 1, 2, 3, 4}
print(set3) # {1, 2, 3, 4}
set4 = set('abcdefg')
print(set4) # {'d', 'b', 'e', 'a', 'f', 'g', 'c'}
set5 = set()
print(set5) # set()
集合没有顺序,因此集合不支持下标
2.增加数据
2.1add()
用于增加单一数据,否则报错
set = {0, 1, 10, 11, 100}
set.add(101) # 追加
set.add(100) # 不能重复
print(set) # {0, 1, 100, 101, 10, 11}
2.2update
增加序列
# update
set = {0, 1, 10, 11, 100}
set.update([101, 110, 111, 100])
print(set) # {0, 1, 100, 101, 10, 11, 110, 111}
3.删除数据
3.1remove
删除集合中的指定数据,如果数据不存在,则报错
set = {0, 1, 10, 11, 100}
set.remove(11)
print(set) # {0, 1, 100, 10}
set.remove(111)
print(set) # 报错
3.2discard()
删除集合中的指定数据,如果数据不存在不会报错
set = {0, 1, 10, 11, 100}
set.discard(11)
print(set) # {0, 1, 100, 10}
set.discard(111)
print(set) # {0, 1, 100, 10}
3.3pop()
随机删除集合中的某个数据,并返回这个数据
set = {0, 1, 10, 11, 100}
num = set.pop()
print(num) # 0
print(set) # {1, 100, 10, 11}
4.查找数据
- in:判断数据在集合序列
- not in:判断数据不在集合序列
set = {0, 1, 10, 11, 100}
print(0 in set) # True
print(0 not in set) # False
print(111 in set) # False
print(111 not in set) # True