我在研究python codegolf时看到有人用一种奇怪的方式使用解包运算符:
*s,='abcde'
我知道解包操作符基本上在一个序列上迭代。所以我知道
^{pr2}$
将“解包”字符串abcde
并将['a', 'b', 'c', 'd', 'e']
保存在变量s
中。在
有人能尽可能详尽地解释
*s,='abcde'
报表工作?我知道它和s=[*'abcde']
是一样的,但是它以不同的方式完成它。为什么解包迭代器在变量上,而不是在字符串上?为什么变量名后面有逗号?在
Tags:
这是Iterable Unpacking。您可能在其他地方见过从一个表达式向多个变量赋值的方法
此语法包含一个
^{pr2}$*
,表示该变量应该是一个列表,其中包含iterable中未显式分配给另一个变量的元素。在那么,你的例子是怎么回事?只有一个变量名被赋值,所以它将把所有没有赋值给另一个变量的项,在本例中是所有的项。如果你试着
你会得到
这就是为什么会有逗号,因为后面的逗号是用来表示单个值元组的。在
相关问题 更多 >
编程相关推荐