python - 比较列表列表的元素并删除

标签 python python-3.x

l=[['a', 'random_str', 4], ['b', 'random_str2', 5], ['b', 'random_str3', 7]]

所以我有一个像这样的列表,我想遍历这个列表以检查每个子列表的第零个索引是否彼此相等,因此检查每个子列表的任何第零个索引是否等于另一个,然后如果两个of 或 more 类似,检查子列表中的第二个索引,仅保留具有最低 int 值的子列表,并删除所有其他子列表。

所以输出应该是这样的

[['a', 'random_str', 4], ['b', 'random_str2', 5]]

因此它会删除第二个索引中具有较高 int 的子列表

我在想这样的事情

for i in l:
    for k in i:
        if k[0]=i[0][0]:
            # then I dont know 

最佳答案

它可以通过 pandassort_valuesgroupby 来实现:

import pandas as pd
l=[['a', 'random_str', 4], ['b', 'random_str2', 5], ['b', 'random_str3', 7]]

#create dataframe from list of list
df = pd.DataFrame(l)

#sort column based on third column / index = 2
df = df.sort_values(by=2)

#groupby first column and only take first entry which is lowest int after sort.
df = df.groupby(0).head(1)

#put back to list of list
df = df.values.tolist()

print(df)

打印出来

[['a', 'random_str', 4], ['b', 'random_str2', 5]]

关于python - 比较列表列表的元素并删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59982795/

相关文章:

Python: "dynamic"列表的所有可能组合

python - case/switch 语句的 Python 等价物是什么?

Python:在 elif 条件下循环

python - 递归斐波那契 yield

python - 仅匹配正则表达式的最后一个字符

Python Pandas Dataframe 插入许多任意值

python - 无法在内部使用几何管理器网格。已经有由包管理的奴隶

python - 是否有纠正大小写的python拼写纠正库?

python - 比较列表和条件语句

python - 应用程序退出后未设置剪贴板?