解包操作符 python_用解包操作符 * 解包列表

文档中常提到的用法是接受不定数量的参数, 最近发现除此之外, * 用来解包list或dict或set真是好用

>>> list(range(3, 6)) # normal call with separate arguments

[3, 4, 5]

>>> args = [3, 6]

>>> list(range(*args)) # call with arguments unpacked from a list

[3, 4, 5]

>>> print(*[1], *[2], 3)

1 2 3

>>> dict(**{'x': 1}, y=2, **{'z': 3})

{'x': 1, 'y': 2, 'z': 3}

>>> *range(4), 4

(0, 1, 2, 3, 4)

>>> [*range(4), 4]

[0, 1, 2, 3, 4]

>>> {*range(4), 4}

{0, 1, 2, 3, 4}

>>> {'x': 1, **{'y': 2}}

{'x': 1, 'y': 2}

>>> {'x': 1, **{'x': 2}}

{'x': 2}

>>> {**{'x': 2}, 'x': 1}

{'x': 1}

#unambiguous and well-defined way:

combination = {**first_dictionary, "x": 1, "y": 2}

#instead of:

combination = first_dictionary.copy()

combination.update({"x": 1, "y": 2})

之前生成一个连续整数的列表,要用列表解析:

foo = [i for i in range(10)]

其实可以不用for语句, 直接这样写:

foo = [*range(10)]

对于分行打印也是如此, 之前这样:

foo = ['a', 'b', 'c', 'd', 'e', 'f']

for i in foo:

print(i)

其实可以这样写:

foo = ['a', 'b', 'c', 'd', 'e', 'f']

print(*foo, sep='\n')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值