gpt4 book ai didi

python - 如何在for循环中编辑列表元素 - python

转载 作者:行者123 更新时间:2023-12-01 02:07:19 25 4
gpt4 key购买 nike

我有一个数字列表,我正在尝试循环该列表并根据特定条件更改每个数字。但我的代码没有改变列表,当我最后再次打印它时它仍然是一样的。我的代码如下:

list = [[10.0, 4.0, 10.0, 10.0, 4.0, 0.0, 10.0, 10.0, 10.0, 4.0, 6.0]]

for x in list:
if (x >= 0):
x = 100
if (x < 0):
x = -100
print list

看了这个并没有解决问题Looping over a list in Python

最佳答案

你有两个问题:一是你的列表实际上是列表的列表;二是你的列表实际上是列表的列表。第二,您没有正确为列表分配值。尝试这样的事情:

# Loop over the indices of the list within the list
for i in range(len(list[0])):
if (list[0][i] >= 0):
list[0][i] = 100
else:
list[0][i] = -100
print list

有多种方法可以使其更加高效和通用,但保持 for 循环风格,上面的代码将适用于您的情况。

例如,您也可以这样做(在列表迭代形式中本质上是相同的事情,并循环遍历列表列表中的每个列表,以防您有多个列表):

[[100 if lst[i] >=0 else -100 for i in range(len(lst))] for lst in list]

对于多个列表的列表,其工作原理如下:

old = [[10.0, 4.0, 10.0, 10.0, 4.0, 0.0, 10.0, 10.0, 10.0, 4.0, 6.0],[-2, 2, -2]]

new = [[100 if lst[i] >=0 else -100 for i in range(len(lst))] for lst in old]

>>> new
[[100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100], [-100, 100, -100]]

还有,一般是bad style调用你的列表 list,因为 list 已经是 python 中的内置类型。

关于python - 如何在for循环中编辑列表元素 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com