入力:リストの最初の要素が一致している場合はリストの2番目の要素を合計する方法
[["US", 2], ["UK", 3], ["FR", 4], ["US", 2], ["US", 2], ["UK", 2]]
出力:私は、リストの場合の第二の要素を合計する
[["US", 6], ["UK", 5], ["FR", 4]]
リストの最初の要素は一致しています。私は辞書とセットを使用しようとしましたが、私は論理を思いつくことができませんでした。これは、HadoopやSparkで簡単に行うことができます。これは、フレームワークが一部を減らし、簡単に値リストを合計するためです。しかし、私はPythonでやる方法がわかりません。誰か助けてもらえますか?
注:私は最適化されたソリューションを探しています。多くのforループを使用していません。
何試されてきた:
import collections
l1 = [["US", 2], ["UK", 3], ["FR", 4]]
l2 = [["US", "[email protected]"], ["UK", "[email protected]"], ["BR", "[email protected]"]]
l1 = dict(l1)
l2 = dict(l2)
l1set = set(l1.keys())
l2set = set(l2.keys())
for i in l1set & l2set:
print l2[i]
はあなたの仕事をご提示ください。何を試しましたか? –
それは@bernieと私は別の解決策を思い付いたように見えます。あなたが探している結果は何ですか? –
こんにちは@HaiVu、私が言ったように、私は論理を考え出すことができませんでした。しかし、ここで私は単純なリストのために試したものです。インポートコレクション l1 = [["US"、2]、["UK"、3]、["FR"、4] l2 = [["US"、 "[email protected]"]、 "UK"、 "[email protected]"]、[ "BR"、 "[email protected]"]] L1 = dictの(L1) L2 = dictの(L2) l1set =集合(L1。キー()) l2set =セット(l2.keys()) for i1lset&l2set: print l2 [i] –