我有一本字典,有時每個鍵包含多個值。我想測驗是否存在特定鍵和特定值。我可以在有單個值的情況下執行此操作,但無法在串列格式中存在多個值的情況下確定如何執行此操作。
所以,在下面的例子中,代碼應該列印“sport present”,但它沒有。大概我需要遍歷串列,但是如何在測驗密鑰的同時執行此操作?
student_dict = {
"student1": ["esports"],
"student2": ["football", "basketball"],
"student3": ["football"]
}
key = "student2"
value = "football"
if (key, value) in student_dict.items():
print("Sport present")
uj5u.com熱心網友回復:
首先測驗密鑰,然后獲取與密鑰關聯的值(串列)并進行測驗。
你可以這樣做:
student_dict = {
"student1": ["esports"],
"student2": ["football", "basketball"],
"student3": ["football"]
}
key = "student2"
value = "football"
if key in student_dict:
if value in student_dict[key]:
print("Sport present")
uj5u.com熱心網友回復:
首先,您可以list為所有人創建value,key然后根據需要進行檢查:
>>> lst_key_values = [(key,v) for key,val in student_dict.items() for v in val]
>>> lst_key_values
[('student1', 'esports'),
('student2', 'football'),
('student2', 'basketball'),
('student3', 'football')]
>>> key = "student2"
>>> value = "football"
>>> if (key, value) in lst_key_values:
print("Sport present")
Sport present
uj5u.com熱心網友回復:
您撰寫的代碼僅在“足球”和“籃球”這兩個值都分配給“值”時才有效:
student_dict = {
"student1": ["esports"],
"student2": ["football", "basketball"],
"student3": ["football"]
}
key = "student2"
value = ["football", "basketball"]
if (key, value) in student_dict.items():
print("Sport present")
但是如果您只想測驗一個值,那么您應該使用 jfaccioni 提供的答案。
uj5u.com熱心網友回復:
您可以使用dict.get默認回傳:
if value in student_dict.get(key, []):
print("Sport present")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/354738.html
下一篇:在if條件SAS下替換列中的值
