拆包
# 定义一个列表 my_list = [1, 3.14, "hello", True] print(my_list[1]) # 可以获取列表中元素的值 但是可读性不强 # 拆包 num, pi, my_str, my_bool = my_list print(pi) print(my_bool) num, pi, my_str, my_bool = [1, 3.14, "hello", True] # 定义一个元组 my_tuple = (1, 3.14, "hello", True) num, pi, my_str, my_bool = my_tuple print(pi) # 定义一个字典 my_dict = {"name":"老王", "age": 19} ret1, ret2 = my_dict # 得到的是key 字典是无序的 print(ret1, ret2) # name age # 一次定义多个变量 num1 = 10 num2 = 20 num3 = 30 num4 = 3.14 # 变量名和值是一一对应 num1, num2, num3, num4 = 10, 20, 30, 3.14 print(num4) # 元组,函数返回值拆包 def deal_name_age(name, age): # 处理后 姓名:小明 年龄:22 new_name = "姓名:%s" % name new_age = "年龄:%d" % age # 如果在函数内部 使用return 返回值1 返回值2,... 默认就是元组类型 不需要写小括号 return new_name, new_age my_name, my_age = deal_name_age("小明", 20) print(my_name, my_age) # 姓名:小明 年龄:20
总结:
- 拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
-
除了对元组拆包之外,还可以对列表、字典等拆包
交换变量的值
# 代码是从上往下执行 一行一行的读 # 第1种方式 a = 4 b = 5 c = 0 c = a # c = 4 a = b # a = 5 b = c # b = 4 # 结果 print(a) # 5 print(b) # 4 # 第2种方式 a = 4 b = 5 a = a + b # a = 9 b = 5 b = a - b # a = 9 b = 4 a = a - b # a = 5 b = 4 print(a) # 5 print(b) # 4 # 第3种方式 a, b = 4, 5 # a = 4 b = 5 #不是等价的 a, b = b, a # a = 5 b = 4,在执行这行的时候 看的是上一行的代码 # a = b b = a 上一行和该行不是等价的 print(a) # 5 print(b) # 4
完