元祖的定义
Tuple 元祖与列表类似,不同之处在于元祖中 元素不能修改
- 元祖表示多个元素的序列
- 元祖在python中,有特定的应用场景
元祖用于存储 一串信息,数据之间用逗号分隔
元祖用 ( ) 定义,与列表不一样,列表用方括号
元祖的索引也是从 0 开始
如:info_tuple=("张三",123,"abc")
创建空元祖: tuple=( )
元祖中只包含一个元素时,需要在元素后面添加逗号,如:tup1 = (50,)
tup1 = (50,) 与 tup1 = (50)
使用type(tup1),前者显示Tuple,后者显示int
元祖的常用操作
元祖和列表的使用很相似
元祖的循环遍历
与列表语法一致
但在实际的开发需求中,遍历元祖的需求并不多,因为元祖中存储的数据类型可能不一致,除非能够确认元祖中的数据类型
格式化字符串
实际中更多的应用场景
1)函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个参数
2)格式字符串,格式字符串后面的( ),本质上就是一个元祖
3)让列表中的数据不被修改,就可以使用元祖,以保护数据的安全
针对2举例:
tup1 = ("张三", 18, 1.75)
print("%s 的年龄是 %d 身高是 %.2f" % tup1)
# 同时也可以将该字符串复制给一个变量进行输出
info_str = "%s 的年龄是 %d 身高是 %.2f" % tup1
print(info_str)
输出的结果均是:张三 的年龄是 18 身高是 1.75
元祖和列表的转换
num_list = [1, 2, 3, 4, 5]
num_tuple = tuple(num_list) # 格式:tuple(list) 将列表转换成元祖
print(num_tuple)
num_list2 = list(num_tuple)
print(num_list2)
字典的定义
字典(dictionary)
1)字典可以用来存储读个数据(通常是用来存储描述一个物体的相关信息)
2)和列表的区别
- 列表是有序的对象集合
- 字典是无序的对象集合(使用print函数输出时,通常输出的顺序和定义的顺序会不一致)
3)字典用 { } 定义
4)字典用键值对存储数据,键值对之间用逗号分隔,类似java的map
- 键 key 是索引
- 值 value 是数据
- 键和值之间使用 : 分隔
- 键必须是唯一的
- 值可以取任何数据类型,但 键 只能使用 字符串,数字或元祖
字典的常用操作
xiaoming = {"name": "小明", "age": 18, "leight": 1.75, "weight": 125}
print(len(xiaoming)) # 获取字典的键值对数量
print(xiaoming.values())
print(xiaoming.keys())
print(xiaoming["name"]) # 取key的value值,与列表元祖不同的是列表取的是索引
# 增加和修改,如果key存在则修改value值,如果key值不存在,则增加key-value
xiaoming["name"] = "小小明"
xiaoming["sex"] = "Man"
xiaoming.pop("sex") # 删除key为sex,value为Man这项,如果执行的key不存在程序报错
# 合并字典,将字典xiaoming_dict合并到字段xiaoming中,如果key值存在则覆盖
xiaoming_dict = {"age": "20"}
xiaoming.update ( xiaoming_dict )
xiaoming_dict.clear() # 清空字典
print(xiaoming)
字典的遍历
格式:
for 循环体内部使用的key的变量 in 字典:
for k in xiaoming:
print ( "%s:%s" % ( k,xiaoming[k]))
字典和列表组合的应用场景
将多个字典放在一个列表中,在进行遍历,在循环体内部针对没一个字典进行相同的处理
card_list = [{
"name": "张三",
"qq": "123456",
}, {"name": "李四", "qq": "654321", "phone": "13512345678"}]
for card_test in card_list:
print(card_test)
输出结果:
{'name': '张三', 'qq': '123456'}
{'name': '李四', 'qq': '654321', 'phone': '13512345678'}