Python中的算法解决这个问题

Sha*_*sal 1 python algorithm

我有一个列表列表,如:[[foo,1],[baz,1],[foo,0],[bar,3],[foo,1],[bar,2],[baz,2]].我想获取内部列表中的所有不同项目并找到它们的总数.我的意思是结果应该是:[[foo,2],[bar,5],[baz,3]].我该怎么做这个任务?

提前致谢.

Pav*_*ili 6

创建一个字典

D = {}
for item in list:
  left,right=item
  D[left] = D.get(left, 0) + right
Run Code Online (Sandbox Code Playgroud)

可能有更快的方法来做到这一点.

正如Joce,Gnibbler和Blair的评论中所建议的,你可以这样做再次获得一份清单.

# To get a list of lists
pairs = map(list, D.items()) 
# To get a list of tuples
pairs = D.items()
Run Code Online (Sandbox Code Playgroud)

  • ``pairs = D.items()``会做同样的事情. (2认同)