2017-10-17 389 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。 –