私はユニークなアイテムの2つの別々のリストから1つのリストを作りたいと思います。2つのリストを取って、重複を除いてどのように組み合わせるか?
他にも同様の質問がありますが、リストが数百万項目長いので、この問題を効果的に処理することは関係していないようです。
完全に無関係:私は、タグ候補ボックスが「あなたの質問を投稿」ボタンを覆う方法を嫌う唯一の人ですか?
私はユニークなアイテムの2つの別々のリストから1つのリストを作りたいと思います。2つのリストを取って、重複を除いてどのように組み合わせるか?
他にも同様の質問がありますが、リストが数百万項目長いので、この問題を効果的に処理することは関係していないようです。
完全に無関係:私は、タグ候補ボックスが「あなたの質問を投稿」ボタンを覆う方法を嫌う唯一の人ですか?
set
を使用してください。
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
>>> third = list(set(first) | set(second)) # '|' is union
>>> third
[1, 2, 3, 4, 5, 6, 7]
>>> l1 = range(10)
>>> l2 = range(5, 15)
>>> set(l1) | set(l2)
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
誰かがset()
せずにそれをしたい場合:
a = [1,2,3]
b = [2,3,4]
newlist=[]
for i in a:
newlist.append(i)
for z in b:
if z not in newlist:
newlist.append(z)
newlist.sort()
print newlist
Aそれを行うには、わずかに、より効率的な方法:
>>> first = [1, 2, 3, 4]
>>> second = [3, 2, 5, 6, 7]
# New way
>>> list(set(first + second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.42 µs per loop
# Old way
>>> list(set(first) | set(second))
[1, 2, 3, 4, 5, 6, 7]
#1000000 loops, best of 3: 1.83 µs per loop
それが唯一持っているので、新しい方法は、より効率的です2の代わりに1つのセット()。
リストの項目は重要ですか? –
いいえ、それらはソートされていません –