2017-10-17 28 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」私他の私、私のために、リスト内にある場合]、それは '1'のようにあまり見た目ほど' –

答えて

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'] 

aが一般的な場合はsetである場合が多く、多くの要素があるため、検索はlistよりも高速です。

ノート:それはlistタイプをシャドウとして

  • は、変数名としてlistは使用しないでください。あなたは
+1

は、いずれかの変数名として 'L'を使用しないでください。 –

+0

ok良い点:) –

+0

Dv警察は再び攻撃する。私は気にしていません... –

0

あなたが使用することができます(古典ループではなく、理解のも可能である)の代わりにresultlstに割り当てる、lstを変更したい場合は、この方法は、別のlist作成

  • に気づいたように私はlstを使用しましたforループを実行します。

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

    なぜ 'while'ループを使うのですか?なぜループを繰り返すのですか? 'もし'の要素が 'であるかどうかをチェックするだけです...' a'をループしていますが、Pythonではループしていません。 –

    関連する問題