값으로 목록이있는 사전이 있습니다.
찾고있는 요소 ( 하나 이상 ) 와 일치하는 목록의 요소를 검색하고 키 및 값 쌍을 별도의 사전으로 검색하려면 어떻게해야합니까?
이제 내가 가지고있는 코드는 단일 요소 만 검색 하고 결과 에만 키를 저장 하도록 허용합니다 .
dict = {
"4Fingers Crispy Chicken":["Fast Food", "L1", "4Fingers Crispy Chicken"],
"Aburi-EN":["Restaurant", "L1", "Aburi-EN"],
"Ah Chiang's Porridge":["Eatery","B1","Ah Chiang's Porridge"],
"BlackBall":["Dessert","B1", "BlackBall"],}
result=[]
value_to_search = input("Search:")
for key, val in dict.items():
if value_to_search in val:
result.append(key)
print(result)
누군가 내가 한 번에 여러 요소를 검색하고 키와 값을 모두 저장할 수있는 방법을 가르쳐 줄 수 있습니까?
if
필터링 과 함께 사전 이해력을 사용할 수 있습니다 .
dic = {
"4Fingers Crispy Chicken": ["Fast Food", "L1", "4Fingers Crispy Chicken"],
"Aburi-EN": ["Restaurant", "L1", "Aburi-EN"],
"Ah Chiang's Porridge": ["Eatery", "B1", "Ah Chiang's Porridge"],
"BlackBall": ["Dessert", "B1", "BlackBall"],
}
value_to_search = input("Search:")
result = {
k: v for k, v in dic.items()
if value_to_search in v
}
print(result)
산출:
Search:B1
{"Ah Chiang's Porridge": ['Eatery', 'B1', "Ah Chiang's Porridge"], 'BlackBall': ['Dessert', 'B1', 'BlackBall']}
dict
. 내장 된 이름입니다.그러나 대신 두 값을 검색하는 방법은 무엇입니까?
나는 구분자가 |
.
value_to_search = input("Search: ")
results = {
target: {
k: v for k, v in dic.items()
if target in v
} for target in value_to_search.split('|')
}
from pprint import pprint # just for posting readability.
pprint(results)
산출:
Search: L1|B1
{'B1': {"Ah Chiang's Porridge": ['Eatery', 'B1', "Ah Chiang's Porridge"],
'BlackBall': ['Dessert', 'B1', 'BlackBall']},
'L1': {'4Fingers Crispy Chicken': ['Fast Food',
'L1',
'4Fingers Crispy Chicken'],
'Aburi-EN': ['Restaurant', 'L1', 'Aburi-EN']}}
"패스트 푸드"와 "L1"을 동시에 검색하고 싶었습니다. 그리고 "Fast Food"및 "L1"과 일치하는 키 및 값을 꺼냅니다.
나는 오해했다. 여기에 답이 있습니다.
value_to_search = input("Search: ")
results = {
k: v for k, v in dic.items()
if all(
target.strip() in v
for target in value_to_search.split('&')
)
}
산출:
Search: Fast Food & L1
{'4Fingers Crispy Chicken': ['Fast Food', 'L1', '4Fingers Crispy Chicken']}
{k: v for k, v in dic.items() if ...
all(...)
all
내장 기능입니다. 당신은 볼 수 있습니다 참조 . iterable을True
target.strip()
value_to_search.split('&')
&
에서 구분 된 목록 만들기value_to_search
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다