1. ホーム
  2. python

[解決済み] 値でリストをグループ化する

2022-02-10 01:20:45

質問

例えば、こんなリストがあるとします。

mylist = [["A",0], ["B",1], ["C",0], ["D",2], ["E",2]]

Pythonでこのリストを出力するために、どのように最もエレガントにグループ化すればよいのでしょうか。

[["A", "C"], ["B"], ["D", "E"]]

つまり、値は2番目の値でグループ化されているが、順序は維持されている...。

どのように解決するのですか?

values = set(map(lambda x:x[1], mylist))
newlist = [[y[0] for y in mylist if y[1]==x] for x in values]