2017-10-17 456 views
0

我对python非常新,我尝试用x给出列表中的元素,因为具体列表具有相同的元素。例如:替换python列表中的元素

list =[1,2,3,4,5,6,7,8,9] 
a = [1,4,7,9] 

名单应该成为这样的:

list =[x,2,3,x,5,6,x,8,x] 
+2

尝试'名单= [“X”如果我在列表中的一样,我对我]' –

回答

5

使用列表理解重建列表,三元,以决定是否保留原始元素或更换:

lst = [1,2,3,4,5,6,7,8,9] 
a = {1,4,7,9} 

result = ["x" if i in a else i for i in lst] 

其中收益率为:

['x', 2, 3, 'x', 5, 6, 'x', 8, 'x'] 

请注意,在一般情况下,如果aset会更好,因为这里有很多元素,因此查找速度快于list

笔记:

  • 不使用list作为变量名,因为它屏蔽了该list类型。我用lst你注意到
  • 此方法创建另一个list,如果你想修改lst,分配给lst而不是result(经典的循环,也可以代替理解)
+1

不要使用'l'作为变量名要么,因为它看起来太像'1'。 –

+0

确定好点:) –

+0

Dv警察再次袭击。不是我在乎... –

0

你可以使用for循环在一个while循环中来做到这一点。

counter = 0 
while counter < len(list): 
    for x in a: 
     if list[counter] == x: 
      list[counter] = "x" 
    counter += 1 
+0

为什么使用'while'循环?为什么要循环一次?只要检查''中的元素是否...'它正在循环'a',但不是Python。 –