一维列表去重
对于一维列表去重是最简单的方法,就是使用list列表自带的set方法。
list1 = [1, 2, 3, 4, 5, 6, 6, 6, 7, 8, 8, 8, 8, 9, 10]
print(list1)
list1 = list(set(list1))
print(list1)
当然接下去就是二维列表去重,可以先使用上面方法测试一下,发现是行不通的。对于二维列表直接使用set会报错TypeError: unhashable type: “list”。

二维列表去重
二维列表去重正确打开方式,我总结了两个比较好用的方法,一起分享记录。
第一种代码示例如下,先转化成tuple然后在进行set。
list1 = [
[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[7, 8, 9]
]
print(list1)
res = list(set([tuple(t) for t in list1]))
res = [list(s) for s in res]
print(res)
第二种方法就是利用for循环依次判断是否存在新的list2变量中,并追加转移到新的list2变量中。用这个方法的好处就是不会改变list列表原有的顺序。
list1 = [
[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[7, 8, 9]
]
print(list1)
list2 = []
for v in list1:
if v not in list2:
list2.append(v)
print(list2)
至于更多的多维列表,推荐大家根据我上面第二种方法去修改实现即可。
一维列表排序
因为使用set方法去重后,原有的顺序会更改,下面代码给出去重后的一维列表的从小到大排序代码示例。
list1 = [31, 8, 63, 4, 33, 6, 6, 6, 7, 8, 8, 8, 8, 9, 10]
list1 = list(set(list1)) # 去重
print(list1) # 原有顺序会打乱
#list 排序对象
#key 排序的规则,按什么关键字排序,lambda定义
#reverse True 降序 False 升序
list_new = sorted(list1, key=None, reverse=False) #reverse为True时大到小排序
print(list_new)
二维列表排序
二维列表和多维列表排序比较麻烦一点,下面还是给出示例方便理解。
list1 = [
[3, 2],
[42, 5],
[3, 2],
[32, 8]
]
print(list1)
list2 = []
# 去重
for v in list1:
if v not in list2:
list2.append(v)
new_list_1 = sorted(list2, key=(lambda x: x[0]), reverse=False) # 按第1个元素
new_list_2 = sorted(list2, key=(lambda x: x[1]), reverse=True) # 按第2个元素
print("按第1个元素小到大:", new_list_1)
print("按第2个元素大到小:", new_list_2)
参考文献
“Python二维列表排序_新手菜鸟-的博客-CSDN博客_python二维列表排序.” Blog.csdn.net, blog.csdn.net/qq_58309598/article/details/119089342.
本文地址:https://www.mainblog.cn/277.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
黔ICP备19006353号-2
贵公网安备 52052102000042号