私はPythonリストx = [['a',1], ['b',3],['d',5]]
を持っていて、新しいリストに2番目の列の値を格納したいと考えています。y = [['a',1], ['b',3], ['c',0], ['d',5]]
必ずしも最初のリストにすべてのa、b、c、dのエントリがあるとは限りません。ここで は、私が今持っているものです。Python:handle python list
x = [['a',1], ['b',3],['d',5]]
y = []
b = ('a','b','c','d')
for key in b:
for i, sublist in enumerate(x):
if sublist[0] == key:
y.append(sublist)
else
y.append([key,0])
print y
これは与える:
[['a', 1], ['a', 0], ['a', 0], ['b', 0], ['b', 3], ['b', 0], ['c', 0], ['c', 0], ['c', 0], ['d', 0], ['d', 0], ['d', 5]]
それは私が間違っているのことは何ですか?
リストxのキーがリストbにあることを確認しようとしていますか?そのような場合は、そのようなループをネストする必要はありません。これは、代わりに 'in'キーワードを使用する必要があることを意味します。さらに、私はマッチを見つけるときにあなたの目標が何であるか分かりません。常に最新の値で更新したいと考えていますか? – idjaw
forループのたびに、条件をチェックしてリストに追加しています。これは長すぎる結果です – bigbounty