在lis中循环列表

2024-06-28 11:38:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张有数字的单子。你知道吗

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]中的listname赋值?你知道吗

如何将for循环的输出分配给myformatlists中的列表?你知道吗


Tags: in列表forlen格式方式range数字
1条回答
网友
1楼 · 发布于 2024-06-28 11:38:35
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]]

这将改变原来的列表。你知道吗

但请注意,re代码存在一个问题,其中x未定义,因为列表理解不完整:

myformatlists[i] = [regex.sub("\.0?$", "", x).replace(".", "_").replace(",", ".")

它应该是re.sub,也许其他的应该是:

myformatlists[i] = [re.sub("\.0?$", "", x).replace(".", "_").replace(",", ".") for x in myformatlists[i]]

相关问题 更多 >