我有一個問題,我從網站上抓取數據并從表中取出數據并將其放入元組列表中。是這樣的: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'

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
除了在列表中使用 dict 之外,您還可以使用 next 和理解:
>>> next(v for k, v in a if k == "HDD") '2TB'
如果該值也不存在,這也允許您提供默認值。
添加回答
舉報
0/150
提交
取消