【发布时间】: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