Python-如何替换列表中列表项中的字符

时间:2018-12-19 15:33:53

标签: python list

我是python的初学者,正在尝试解决此问题,但无法正确输出。我正在尝试更改列表中某个项目的值,并将该项目传递给新列表。

mylist = []
test = ['path', 'name', 'user1', 'orig']
for i in test:
     if 'user' in i:
          mylist = 'user' # or i[:-1]
     else:
          mylist = i
mylist

任何帮助将不胜感激,或将我指向答案

Damon

5 个答案:

答案 0 :(得分:1)

您可以进行列表理解:

test = ['path', 'name', 'user1', 'orig']

mylist = ['user' if 'user' in x else x for x in test]
# ['path', 'name', 'user', 'orig']

答案 1 :(得分:1)

请注意,当您这样做时:

`mylist = 'user'`

您正在用'user'替换列表中的所有内容。因此,您想指定一个索引,例如mylist[i] = 'user',或使用append

但是,可以使用列表理解来简化此操作:

[i if 'user' not in i else 'user' for i in l ]
['path', 'name', 'user', 'orig']

答案 2 :(得分:0)

您想要的是这样的:build tools - Tools for Visual Studio 2017

>>> mylist = []
>>> test = ['path', 'name', 'user1', 'orig']
>>> for i in test:
...      if 'user' in i:
...           mylist.append(i[:-1])
...      else:
...           mylist.append(i)
...
>>> mylist
['path', 'name', 'user', 'orig']

答案 3 :(得分:0)

列表理解可能是最好的答案。但由于您正在学习,因此也很高兴看到扩展方式。

mylist = []
test = ['path', 'name', 'user1', 'orig']
for x in test:
    if 'user' in x:
        x = 'user'  
        mylist.append(x)
    else:
        mylist.append(x)
mylist

答案 4 :(得分:0)

由于您正在学习,所以我提出了一种与您的方法尽可能相似的解决方案:

mylist = []
test = ['path', 'name', 'user1', 'orig']
for i in test:
     if 'user' in i:
          mylist.append('user') # or i[:-1]
     else:
          mylist.append(i)

print(mylist)

如您所见,我添加了方法.append(),它是list方法,它允许您在列表末尾插入一个元素。

您正在做的是带有=号的作业:每次重新分配mylist的值。

在此QA中,您可以找到有关如何使用.append()的说明,也可以看看official documentation