我是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
答案 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