Python Cookbook学习笔记:复杂变量的拆分赋值

发布于:2025-02-11 ⋅ 阅读:(50) ⋅ 点赞:(0)

Python Cookbook学习笔记

1.1 复杂变量的拆分赋值

1.1.1 通用知识

  1. 关键点
    1. 变量不需要事先声明, 赋值即声明了变量
    2. 未声明(赋值)的变量调用时会出错

1.1.2 参数的拆分

  使用多个参数来拆分一个复杂的数据类型。

  • 注意事项
    • 赋值左侧的变量个数与右侧的对象的数据个数要严格一致,不能多也不能少
      • 错误示范1:
      d = [1,2,3,4,5]
      _, a, b = d  #传入参数过少
      print(a,b)
      
      • 错误示范2:
      d = [1,2,3,4,5]
      _, a, b, c, d, e = d  #传入参数过多
      print(a,b)
      
    • 个人观点:数值个数不能预知的数据类型,使用拆分的方式容易出错,需要谨慎使用
1.1.2.1 拆分元组
x, y = (4,5)
print(x)
print(y)
1.1.2.2 拆分字典
d = [4,5]
x, y = d
print('x:', x, 'y', y)

1.1.3 拆分字符串

s = 'abc'
a,b,c = s
print('a: ', a, "b: ", b, "c: ", c)

1.1.4 丢弃部分值

  如果不元组、字典等有5个值,但只想取中间的3个,则使用“_”忽略

d = [1,2,3,4,5]
_, a, b, c, _ = d
print(a,b,c)

1.1.5 不确定值个数的数据拆分

  当待拆分的数据值个数不确定时,如果不想取某些部分的值,可以将这部分丢到列表中。

  • 只取第1,2个值
d = [1,2,3,4,5]
a,b,*c = d  # *c表示像其他值都丢到c中。
print(a,b, c)
  • 取首尾值
d = (1,2,3,4,5)
a, *b, c = d
print(a, c)
  • 取末尾两个值
d = (1,2,3,4,5)
*a, b, c = d
print(b, c)
  • 还可以使用*args丢到函数参数里,类似于一个参数压缩包,让函数参数自己去拆
d = (1,2,3,4,5)
*a, b, c, d = d
print(b, c)

def test(a, b):
    print("a is: ", a, ", b is: ", b)

test(*a)

1.1.6 拆分支持嵌套

  如果元组中存在元组,拆分时可以进行嵌套拆分,如下所示

l = (1, 2, 3, (4, 5))
a, *_, (*_, b) = l  # 第1个*_丢弃外层的多余元素,第2个*_丢弃第2层的多余元素。
print(a, b)
🕮说明
  丢弃的元素,一般使用"_", 或"ign"变量名承接。

作者声明:本文用于记录和分享作者的学习心得,水平有限,难免存在表达错误,欢迎交流和指教!
Copyright © 2022~2024 All rights reserved.