遍历列表中的列表
Looping over lists in list
我有两个带数字的列表。
newlist = [506.5, 133.0, 11104.2]
totalcolumns = [9.2, 10024.5, 610.0, 1100.0]
我想遍历两个列表并以相同的方式格式化数字:
myformatlists = [newlist, totalcolumns]
for i in range(0,len(myformatlists)):
myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]
myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")
正在打印
print(str(myformatlists[i])
给出正确的新值
但是
print(str(newlist))
print(str(totalcolumns))
仍然给出旧列表。
为什么我的 for 循环不将值分配给 myformatlists[i] 中的列表名?
如何将 for 循环的输出分配给 myformatlists 中的列表?
myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]
重新绑定 myformatlists[i]
,它不会改变 myformatlists
的原始项目。
您可以使用切片符号对 myformatlists[i]
执行就地更新:
myformatlists[i][:] = ['{0:,}'.format(x) for x in myformatlists[i]]
这将改变原始列表。
但请注意,由于列表理解不完整,因此未定义 x
的重新代码存在问题:
myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")
它应该是 re.sub
,也许其余的应该是:
myformatlists[i] = [re.sub("\.0?$", "", x).replace(".", "_").replace(",", ".") for x in myformatlists[i]]
我有两个带数字的列表。
newlist = [506.5, 133.0, 11104.2]
totalcolumns = [9.2, 10024.5, 610.0, 1100.0]
我想遍历两个列表并以相同的方式格式化数字:
myformatlists = [newlist, totalcolumns]
for i in range(0,len(myformatlists)):
myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]
myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")
正在打印
print(str(myformatlists[i])
给出正确的新值
但是
print(str(newlist))
print(str(totalcolumns))
仍然给出旧列表。
为什么我的 for 循环不将值分配给 myformatlists[i] 中的列表名?
如何将 for 循环的输出分配给 myformatlists 中的列表?
myformatlists[i] = ['{0:,}'.format(x) for x in myformatlists[i]]
重新绑定 myformatlists[i]
,它不会改变 myformatlists
的原始项目。
您可以使用切片符号对 myformatlists[i]
执行就地更新:
myformatlists[i][:] = ['{0:,}'.format(x) for x in myformatlists[i]]
这将改变原始列表。
但请注意,由于列表理解不完整,因此未定义 x
的重新代码存在问题:
myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")
它应该是 re.sub
,也许其余的应该是:
myformatlists[i] = [re.sub("\.0?$", "", x).replace(".", "_").replace(",", ".") for x in myformatlists[i]]