1、元组(tuple)
元组是容器级数据类型;
将()作为容器的标志,里面多个元素用逗号隔开:(数据1,数据2,数据3……)
元组不可变的(不支持增、删、改);元组是由序的(支持下标操作)
任何类型数据都可以作为元组的元素
使用场景:如果希望同时保存多个数据,并且要求数据保存只能使用不能修改,就使用元组。
1) 空元组
t1 = ()
print(type(t1))
print(t1)
2) 单个元素的元组:(元素,)
单个元素的元组中,唯一的元素后面必须添加逗号
t2 = (18,)
print(type(t2))
print(t2)
3)元组中由多个元素
t3 = (23,'abc',1.23)
print(t3) (23, 'abc', 1.23)
在没有歧义的情况下,元组的()可以省略
t4 = 10,20,30
print(t4)
print(type(t4))
(10, 20, 30)
<class 'tuple'>
元素是不可变的列表
列表中的所有和可变无关的操作元组都支持:比如:查 、相关操作、相关函数、和可变无关的相关方法(copy 例外)
t1=(10,29,78,67,34)
print(t1[0],t1[3])
print(t1[1:4])
10 67
(29, 78, 67)
2、字典
1、列表和字典的选择问题
如果同时保存的多个数据的意义相同就使用列表
如果同时保存的多个数据的意义不同就使用字典(因为字典键的的存在可以对值进行区分、注解和说明)
2、什么是字典
字典是容器型数据类型;
将{ }作为容器的标准,里面多个键值(键:值)对用逗号隔开:{键1:值1,键2:值2,键3:值3,……)
字典是可变的(支持增、删、减);字典是无序的(不支持下标操作)
字典对元素的要求:元素必须是键值对
键 —— 只有不可变的类型的数据才可以作为字典 (元组 、字符串、数字),一般使用字符串;键是唯一的,值是没有要求
3、空字典
d1 = {}
print(d1)
\1) 键必须是不可变类型的数据
d1={10:20,"abc":30,(1,2):40}
print(d1)
d1={10:20,"abc":30,[1,2]:40}
print(d1)
\2) 键是唯一的:
d1={"a":10,"b":20,"c":30}
print(d1)
d1={"a":10,"b":20,"c":30,"a":100}
print(d1)
3、查 —— 获取字典某一个值
1) 字典(键) — 获取字典中指定键对应的值
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1['name']) # Tom
print(dict1['age']) # 20
print(dict1['id']) # 没有id对应的键,系统会报错
print(dict1['id'])
KeyError: 'id'
2)字典.get(键)— 获取字典中指定键对应的值,如果键不存在不会报错,返回None
字典.get(键,默认值) — 获取字典中指定键对应的值,如果键不存在不会报错,返回默认值
字典序列.get(key, 默认值)
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
print(dict1.get('name')) # Tom
print(dict1.get('id', 110)) # 110
print(dict1.get('id')) # None
3、字典遍历
for 变量 in 字典:
循环体
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
for i in dict1:
print(i)
print(i,dict1[i])
name Tom
age 20
gender 男
4、增、改
字典[ 键 ] = 值 — 如果键存在就修改指定键对应的值,如果键不存在就添加键值对
goods={'name':'蛋黄粽子','price':9,'weight':300 }
goods['price']=6
print(goods)
# {'name': '蛋黄粽子', 'price': 6, 'weight': 300}
goods['count']=10
print(goods)
# {'name': '蛋黄粽子', 'price': 6, 'weight': 300, 'count': 10}
字典.setdefault(键、值) —— 添加键值对(如果键已经存在了,不会取修改键的值)
goods_list=[
{'name':'蛋黄粽子','price':9,'weight':300,'discount':'0.8'},
{'name':'红豆粽子','price':'6','weight':'300',},
{'name':'腊肉粽子','price':'8','weight':'300','discount':'0.8'},
{'name':'白粽子','price':'3','weight':'300'}
]
for i in goods_list:
i.setdefault('discount',1)
print(goods_list)
[{'name': '蛋黄粽子', 'price': 9, 'weight': 300, 'discount': '0.8'},
{'name': '红豆粽子', 'price': '6', 'weight': '300', 'discount': 1},
{'name': '腊肉粽子', 'price': '8', 'weight': '300', 'discount': '0.8'},
{'name': '白粽子', 'price': '3', 'weight': '300', 'discount': 1}]
5、删
del 字典[ 键 ] —— 删除指定键对应的键值对
字典.pop( 键 ) —— 取出指定键对应的值
goods={'name':'蛋黄粽子','price':9,'weight':300,'discount':'0.8'}
del goods['discount']
print(goods)
result = goods.pop('weight')
print(result)
print(goods)
{'name': '蛋黄粽子', 'price': 9, 'weight': 300}
300
{'name': '蛋黄粽子', 'price': 9}