簡體   English   中英

如何僅從字典中提取鍵

[英]How do I pull out only the keys from the dictionary

我正在嘗試創建一個不使用大量 if 語句的 dict,但由於某種原因,我似乎無法讓它按我想要的方式工作。 當對應於輸入的日期時,我試圖只從字典中提取鍵。

提前致謝。

編輯:預期的輸入/輸出

輸入(星期幾) Output(對應鍵)
'周一' 12
'周二' 12
'星期五' 12
'周三' 14
'周四' 14
'周六' 16
'星期日' 16
day = str(input())

day_price_dict = {12: ['Monday', 'Tuesday', 'Friday'], 14: ['Wednesday', 'Thursday'], 16: ['Saturday', 'Sunday']}

if day in day_price_dict:
    print(day_price_dict[day])

以下應該做你想要的:

# example: day = 'Tuesday'
day = str(input())

day_price_dict = {12: ['Monday', 'Tuesday', 'Friday'], 14: ['Wednesday', 'Thursday'], 16: ['Saturday', 'Sunday']}

# iterate through dict keys (12, 14, 16)
for key in day_price_dict:
    # if input is in the value list, print the key
    if day in day_price_dict[key]:
        # print 12
        print(key)

您的概念化似乎不正確:您想要的可能是從天數到價格的映射,而不是反之亦然,即

>>> day_prices = {'Monday': 12,
                  'Tuesday': 12,
                  'Wednesday': 14,
                  'Thursday': 14,
                  'Friday': 12,
                  'Saturday': 16,
                  'Sunday': 16}

>>> day_prices["Monday"]
12

你可以得到這樣的鑰匙:

keys = day_price_dict.keys()
# if you want a list:
keys = list(day_price_dict.keys())

您還可以獲取值:

for value in day_price_dict.value():
   print(value)

或兩者

for key, value in day_price_dict.items():
    print(f"key: {key} -- value: {value}")

在 Python 3 list() function 將任何可迭代對象作為參數並返回一個列表。 在 Python 中可迭代的是 object 您可以迭代。 您可以簡單地使用以下幾行來獲取鍵列表。

day_price_dict = {12: ['Monday', 'Tuesday', 'Friday'], 14: ['Wednesday', 'Thursday'], 16: ['Saturday', 'Sunday']}
keys_list = list(day_price_dict.keys())
print(keys_list)

暫無
暫無

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

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