python - (Python) 就地修改几个列表
问题描述
我想从几个列表中删除重复项(就地)。已尝试以下但失败(Python Compiler):
a = [1, 2, 2]
b = [3, 4, 4]
c = [5, 6, 6]
print('===previous')
print(id(a))
print(id(b))
print(id(c))
print('---previous')
for l in (a, b, c):
l = list(dict.fromkeys(l))
print('===middle')
print(id(l))
print('---middle')
print('===after')
print(id(a))
print(id(b))
print(id(c))
print(a)
print(b)
print(c)
print('---after')
我知道这是因为(Python 变量)
变量(名称)只是对单个对象的引用。
只是想问一下是否有任何有效的方法可以实现这个目标,谢谢。
解决方案
使用集合。集合中不允许重复:
a = set(a)
b = set(b)
c = set(c)
如果您需要它们再次出现在列表中:
a = list(set(a))
b = list(set(b))
c = list(set(c))
推荐阅读
- azure - 如何在 cosmos db 中添加大小超过 2 mb 的数据作为单个条目?
- python - 我可以将 opencv VideoWriter 的输出保存到 AWS S3 存储吗?
- javascript - Material UI svg Icon:找不到模块:错误:无法解析'@material-ui/icons/...'
- firebase - 无法从 Firestore 集合的子集合中查询文档
- genetic-algorithm - 遗传算法中的锦标赛选择和精英主义有什么区别?
- bash - 如何在 Bash/sh 中将用户帐户名称和目录分配给数组?
- salt-stack - 盐栈在状态失败时执行命令/调用不同的状态
- javascript - 页面缩小时如何保留导航栏上的社交链接,以及打开汉堡菜单时如何将社交图标放在同一行
- python - SQL查询的python等效哈希
- java - 如何在 for 循环的第二次迭代中检查条件?