为了账号安全,请及时绑定邮箱和手机立即绑定

在元组列表中搜索元素

在元组列表中搜索元素

MYYA 2023-03-22 13:52:53
我有一个问题,我从网站上抓取数据并从表中取出数据并将其放入元组列表中。是这样的:a = [("RAM", "8GB"),("HDD", "2TB"),("SSD","1TB")]现在我想通过搜索第一个元素来获取第二个元素的值(或者只是索引,我可以这样获取),就像使用 list.index() 函数时一样。我知道我可以使用 for 循环或使用 dict 来对所有内容进行分类,但我感兴趣的是是否有其他方法或已经存在的函数来处理这个问题。
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

不使用循环就无法在列表中执行搜索。即使是内置函数,例如inor .index(),实际上也是具有 O(n) 时间复杂度的循环。例如:


>>> a = [("RAM", "8GB"),("HDD", "2TB"),("SSD","1TB")]

>>> [v for k, v in a if k == "HDD"]

['2TB']

您可以使用 adict或 aset将其减少到 O(1):


>>> dict(a)["HDD"]

'2TB'


查看完整回答
反对 回复 2023-03-22
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

除了在列表中使用 dict 之外,您还可以使用 next 和理解:

>>> next(v for k, v in a if k == "HDD")
'2TB'

如果该值也不存在,这也允许您提供默认值。


查看完整回答
反对 回复 2023-03-22
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信