python, 列表中的元组取第一个元素相同第二个元素最大的元组,组成新列表

sinat_35181839 2018-07-29 10:23:37
[(73, 2), (73, 3), (73, 4), (77, 2), (77, 3), (77, 4), (77, 5), (77, 6), (77, 7), (84, 2), (84, 3), (84, 4), (88, 2), (88, 3)] 像这样的数,怎么取到 [(73, 4), (77, 7),(84, 4), (88, 3)]
...全文
1110 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzccvb 2019-06-26
  • 打赏
  • 举报
回复
引用 2 楼 sinat_35181839 的回复:
#coding=utf-8
l = [(73, 2), (73, 3), (73, 4), (77, 2), (77, 3), (77, 4), (77, 5), (77, 6), (77, 7), (84, 2), (84, 3), (84, 4), (88, 2), (88, 3)]
#字典推导式https://www.jianshu.com/p/65f4bebc1061
a = {k: v for k, v in l}

print a
b = []

for keys in a:
b.append((keys,a[keys]))
b.sort()

print b
回复错帖子了,sorry,我是看到您这个方法后引申到其他办法,但是您这个字典的方法不知如何处理若元素列表的问题……
mzccvb 2019-06-26
  • 打赏
  • 举报
回复
啊,就是2楼的朋友说的,字典推导式很容易解决这个双元素列表问题,只是如果大于3元素该如何处理?
mzccvb 2019-06-26
  • 打赏
  • 举报
回复
引用 2 楼 sinat_35181839 的回复:
#coding=utf-8
l = [(73, 2), (73, 3), (73, 4), (77, 2), (77, 3), (77, 4), (77, 5), (77, 6), (77, 7), (84, 2), (84, 3), (84, 4), (88, 2), (88, 3)]
#字典推导式https://www.jianshu.com/p/65f4bebc1061
a = {k: v for k, v in l}

print a
b = []

for keys in a:
b.append((keys,a[keys]))
b.sort()

print b
谢谢,您的这个dataframe的方法的确可以,我如果有多列的话在columns中再加元素即可了。顺便还想与您讨论一下用字典推导式的方法来解决这个问题,a = {k: v for k, v in a_list}一下子就能获取这个相同键的最大值了,但是这个无法输入多列元素,比如[a, 1, '123'],[b, 2, '456']等,这个后面的元素只是我的另外所需,无关排序跟查重,这样子的话字典无法读取。请问一下用这种三个以上元素该如何写入字典呢?
oyljerry 2018-07-29
  • 打赏
  • 举报
回复
遍历,然后用dict维护第一个元素做key对应的第二值最大的
sinat_35181839 2018-07-29
  • 打赏
  • 举报
回复
#coding=utf-8
l = [(73, 2), (73, 3), (73, 4), (77, 2), (77, 3), (77, 4), (77, 5), (77, 6), (77, 7), (84, 2), (84, 3), (84, 4), (88, 2), (88, 3)]
#字典推导式https://www.jianshu.com/p/65f4bebc1061
a = {k: v for k, v in l}

print a
b = []

for keys in a:
b.append((keys,a[keys]))
b.sort()

print b

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧