加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python:逗号在= s中做了什么,?

发布时间:2020-12-20 11:02:43 所属栏目:Python 来源:网络整理
导读:我正在做一个问题,输入是字符串: ["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])-or
我正在做一个问题,输入是字符串:

["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()

所以在小组[tmptuple] = s中,

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

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

代替

[["abc","xyz"],["acef"],["az","ba"]]

这些组只是不添加整个字符串s,任何人都可以解释为什么逗号会使它不同以及为什么我不能用逗号来做它?

解决方法

尾随逗号生成一个元组,带有单个元素s.除非存在歧义(例如,使用函数调用parens),Python不需要括号来创建元组;除了空元组(())之外,你通常可以用逗号制作元组,根本不用括号.在这种情况下,单个尾随逗号s,等同于(s,).

由于组具有列表值,这意味着do = s等于.append(s)(从技术上讲,它更接近.extend((s,)),但最终结果是相同的).有人可能试图保存一些按键.

如果省略了逗号,它将执行list = str,将str解释为一系列字符,并使用每个生成的len 1字符串扩展列表,如您所观察到的那样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读