gpt4 book ai didi

python: += s, 中的逗号有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:38 25 4
gpt4 key购买 nike

我在做一道题,输入是字符串:

["abc","bcd","acef","xyz","az","ba","a","z"]

代码如下。

def groupStrings(self, strings):
groups = collections.defaultdict(list)
for s in strings:
tmp=[0]*len(s)
for i in range(len(s)):
tmp[i]=(ord(s[i])-ord(s[0]))%26
tmptuple=tuple(tmp)

groups[tmptuple] += s,
return groups.values()

所以在groups[tmptuple]+=s,

如果我删除逗号 ','我明白了

[["a","b","c","b","c","d","x","y","z"],["a","c","e","f"],["a","z"],["a","z","b","a"]]

代替

[["abc","bcd","xyz"],["acef"],["a","z"],["az","ba"]]

组只是不添加整个字符串 s,谁能解释为什么逗号使它不同以及为什么没有逗号我不能这样做?

最佳答案

结尾的逗号构成了一个元组,其中包含一个元素s。 Python 不需要括号来生成 tuple 除非有歧义(例如函数调用括号);除了空的 tuple (()),您通常可以只用逗号创建 tuple,根本没有括号。在这种情况下,单个尾随逗号 s, 等同于 (s,)

因为 groupslist 值,这意味着做 += s, 等同于 .append(s)(从技术上讲,它更接近 .extend((s,)),但最终结果是相同的)。有人可能试图节省一些击键次数。

如果您省略逗号,它将执行 list += str,将 str 解释为字符序列并使用每个结果 len 扩展列表1 个字符串,如您所见。

关于python: += s, 中的逗号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49164443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com