我正在研究Python代码高尔夫,看到有人以奇怪的方式使用了解包运算符:
*s,='abcde'
我知道解包运算符基本上是对序列进行迭代。所以我知道
s=[*'abcde']
s
变量中存储['a','b','c','d','e']
的代码将“解包”abcde
字符串。
有人能尽可能详细地解释一下这个代码是如何工作的吗?
*s,='abcde'
这个语句的作用是什么?我知道它与s=[*'abcde']
有相同的效果,但它是以一种不同的方式实现的。为什么要对变量进行解包迭代,而不是对字符串进行解包迭代?为什么变量名后面会有逗号?
*
,lhs 需要是逗号分隔列表或[ ]
。尾随逗号创建一个仅包含一个项目的逗号分隔列表,相当于[*s]='abcde'
,但多了一个字符。 - AChampion