簡體   English   中英

如何將具有定義值的字典鍵添加到列表

[英]How to add dictionary keys with defined values to a list

我正在嘗試僅將值> = n的鍵添加到列表中,但是無法給鍵提供參數。

n = 2
dict = {'a': 1, 'b': 2, 'c': 3}
for i in dict:
  if dict[i] >= n:
    list(dict.keys([i])

當我嘗試此操作時,它告訴我不能給.keys()參數。 但是,如果我刪除參數,那么所有鍵都會添加,無論值如何

有什么幫助嗎?

您不需要調用dict .keys()方法,因為您已經在使用for循環迭代data_dict的鍵。

n = 2
data_dict = {'a': 1, 'b': 2, 'c': 3}
lst = []
for i in data_dict:
  if data_dict[i] >= n:
    lst.append(i)

print lst  

結果:

['c', 'b']

您還可以使用列表理解來實現

result = [k for k, v in data_dict.iteritems() if v >= 2]
print result

您應該閱讀以下內容: 遍歷Dictionary

嘗試使用filter

filtered_keys = filter(lambda x: d[x] >= n, d.keys())

或使用列表理解

filtered_keys = [x for x in d.keys() if d[x]  >= n]

您的代碼中的錯誤是dict.keys返回所有鍵,如文檔所述:

返回字典的鍵列表的副本。

您想要的只是一次一把鑰匙,列表理解為您提供了。 另外,在進行過濾(這基本上就是您要執行的操作)時,請考慮使用適當的方法( filter )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM