python - 将列表转换为仅基于元组某些值的副本的集合
问题描述
一般来说,将列表转换为集合很简单,如下所示:
a = [1,2,3,1]
set_a = set(a) # set([1, 2, 3])
现在,我想将一个元组列表转换为设置,只考虑元组的第一个值。
a = [(1,"a1"), (2,"b2"), (3, "c3"), (1, "d4")]
set_a = some_magic(a)
# 1) set_a = set([(1,"a1"), (2,"b2"), (3, "c3")]) or
# 2) set_a = set([(1, "d4"), (2,"b2"), (3, "c3")])
# Both (1) or (2) are acceptible outputs.
有没有我可以使用的“单行”技巧来代替some_magic
上面提到的功能?
我想避免为簿记制作一个单独的列表,哪些元组的第一个索引已经使用[否则这将是显而易见的答案]
解决方案
试试这个:
set(dict(a).items())
dict(a)
会将列表变成字典,其中键被每次出现覆盖
将.items()
每个键值对提取到dict_items
元组列表中
把set()
它变成你想要的集合
注意:这将为您提供第二个示例,保留最后一个唯一的元组键。如果您想要第一个,则需要采用不同的方法
推荐阅读
- gojs - 展开另一个组时折叠一个组
- python - Scrapy 没有命令 'crawl'
- html - 为什么“W”字母的中间笔画在我的密码笔上非常锋利?
- c# - 如何通过单击文本框获取选项卡索引
- safari - iPadOS 13.1 的 Safari 上的 Fabric 安装程序页面未被识别为“设备”
- database - 在现有数据库上还原 Azure SQL 数据库以维护备份历史记录
- node.js - 从同一网络上的android设备请求访问服务器时,无法通过flutter应用程序连接到node.js服务器?
- java - 如何使用 Jackson 将 JSON 字段名称转换为 Java bean 类属性
- python-3.x - 从 imdb 项目 Web 抓取特定数据
- python - OpenCV warpPerspective 不适用于单应性