【问题标题】:Setting a list item is converting it into a tuple设置列表项是将其转换为元组
【发布时间】:2019-11-08 09:37:11
【问题描述】:

首先,我确定这只是我不知道的pythonic。但是,我已经困惑了很久,所以我需要一些帮助!

v = ['']*8 #create a list of 8 empty strings
data = ['N','S','E','W','NW','NE','SW','SE'] #create some data
for i in range(0,len(v)-1): #go through each data item
    v[i] = data[i], #copy each data item into the same place in v

现在据我所知应该给我v=['N','S',...等。但是它给了我v=[('N',),('S',)...等等,这是最令人困惑的!

(注意:我知道这不是做这个练习的正确方法,我的方法很疯狂)

更新: 原始帖子的最后一行:v[i] = data[i](没有逗号)让所有人感到困惑,因为基本上代码有效。现在我们看到v[i] = data[i],,症状就很清楚了。

【问题讨论】:

  • for i in range(0,v-1)? v 是一个列表 - list-1 的结果是什么?这不是您正在运行的代码 - v 也是 8 个字符串的列表……不是 10 个,所以即使您的 cmets 也不匹配
  • 通常使用v = data[:]。 (顺便说一句,在将 v-1 修复为 len(v) 时,您的代码似乎可以工作 - 没有任何 tuples 的迹象)
  • @quamrana 我知道 v=data[:] - 我正在尝试做一些非常具体和愚蠢的事情。不过谢谢 - 缺少 len(v) 是一个错误。我已经解决了问题并添加了答案,我不知道流氓逗号会产生如此大的影响。

标签: python python-3.x list


【解决方案1】:

我删了,试了我可能无法重现。

我无法复制的原因是原版中有一个错字,其中v[i]=data[i], 有一个流氓逗号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 2015-02-13
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    相关资源
    最近更新 更多