如何更改列表中的每个元素?

时间:2019-12-21 07:41:44

标签: python

我有一个名为mylist的数组,其中包含3个元素。我想剥离()该数组中的每个元素。这是代码

mylist = ['  A  ', '  B   ', '    C']

for x in len(mylist):
    mylist[x] = mylist[x].strip()

print(mylist)

此代码给出了错误

TypeError: 'int' object is not iterable

4 个答案:

答案 0 :(得分:5)

问题是len(mylist)返回一个数字。您缺少范围功能。就个人而言,我建议改为使用枚举。

例如,如果您想要相同的列表

for i, x in enumerate(mylist):
    mylist[i] = x.strip()

如果您要一个新列表

lst = [x.strip() for x in mylist]
# or
lst = list(map(str.split, mylist)) 

答案 1 :(得分:3)

  

方法1:列表理解

     

您可以简单地通过使用以下列表理解来做到这一点(这更像pythonic)。

[x.strip() for x in mylist]

输出

['A','B','C']
  

方法2:枚举

     

此外,如果在遍历列表时必须使用 index ,我强烈建议您如下使用 enumerate(mylist)

for i, x in enumerate(mylist):
    mylist[i] = x.strip()
print(mylist)

输出

['A','B','C']

参考

  1. Is there a need for range(len(a))?

答案 2 :(得分:2)

len(mylist)更改为range(len(mylist))

mylist = ['  A  ', '  B   ', '    C']

for x in range(len(mylist)):
    mylist[x] = mylist[x].strip()

print(mylist)

在这种情况下,我将使用列表理解:

mylist = ['  A  ', '  B   ', '    C']
newlist = [x.strip() for x in mylist]

答案 3 :(得分:0)

您的代码for x in len(mylist)将转换为for x in 3无效。因此,错误TypeError: 'int' object is not iterable

更新

for i, x in enumerate(mylist):
    mylist[i] = x.strip()