python - 在元组中查找整数,它是字典中的键
问题描述
字典中的键由具有不同整数的不同元组组成,我需要使用该整数打印字典中的所有值。
我尝试使用 dictionary.get() 和 dictionary.values() 结合不同的 for 循环来获取值。
#Vegetarian = 1
#Vegan = 2
#Gluten-free = 3
a = tuple([0])
# "Joe's Gourmet Burger"
b = tuple([1,3])
# "Main Street Pizza Company"
c = tuple([1,2,3])
# "Corner Cafe"
d = tuple([1])
# "Mama's Fine Italian"
e = tuple([1,2,3])
# "The Chef's Kitchen"
rest = {a:"Joe's Gourmet Burger",
b:"Main Street Pizza Company",
c:"Corner Cafe",
d:"Mama's Fine Italian",
e:"The Chef's Kitchen"}
food = set()
veg = input("does anyone need vegetarian? yes/no ")
if veg == "yes":
food.add(1)
vegan = input("does anyone need vegan? yes/no ")
if vegan == "yes":
food.add(2)
glut =input("does anyone need gluten free? yes/no ")
if glut == "yes":
food.add(3)
for num in food:
print(num)
print(rest[num])
这将为您提供所选过敏的价值。我所希望的是字典能够识别元组中的键,然后打印出相应的餐馆。此外,如果用户选择了多种过敏症,则脚本应仅返回满足用户所有过敏症的餐馆。
我得到的是“在 0x000001ACC9DA4A68 处获取 dict 对象的内置方法”
解决方案
如果用户对任何问题回答“是”,您是否尝试打印出这些值?
如果是这样,这不会完全让您到达那里,但它应该为您指明正确的方向:
for num in food:
for k in rest.keys():
if num in k:
print(rest[k])
如果我理解正确,您需要检查每个字典的键(即每个元组)中是否存在给定的数字。
就@Michael Butscher 而言,这不会很有用,因为您将拥有重复的密钥。相反,您可以将数据结构重组为每个键都有一个餐厅列表的东西:
requirements = {
0: "None",
1: "Vegetarian",
2: "Vegan",
3: "Gluten-free"
}
requirement_restaurant_map = {
0: ["Joe's Gourmet Burger"],
1: ["Main Street Pizza Company", "Corner Cafe", "Mama's Fine Italian", "The Chef's Kitchen"],
2: ["Corner Cafe", "The Chef's Kitchen"],
3: ["Main Street Pizza Company", "Corner Cafe", "The Chef's Kitchen"]
}
food = set()
veg = input("does anyone need vegetarian? yes/no ")
if veg == "yes":
food.add(1)
vegan = input("does anyone need vegan? yes/no ")
if vegan == "yes":
food.add(2)
glut = input("does anyone need gluten free? yes/no ")
if glut == "yes":
food.add(3)
intersection = []
for num in food:
for k in requirements:
if num == k:
if not intersection:
intersection.extend(requirement_restaurant_map[k])
else:
intersection = list(set(intersection).intersection(set(requirement_restaurant_map[k])))
print(f"The following restaurants satisfy your requirements...\n {intersection}")
推荐阅读
- sql-delete - 如何使这个 SQL TRUNCATE 更安全?
- javascript - 对来自 API 的迭代数据实现搜索功能
- .htaccess - .如何在将所有子域请求转发到特定 index.php 时解决 localhost 中的 .htaccess 文件错误?
- testing - 使用 http 请求编写测试而没有响应
- git - 我正在尝试在 git 中切换分支,但他们要求某种报价
- c++ - 在 VSCode 中添加运行时环境变量
- tomcat - 带有 SSL 的 Apache 上的 Tomcat mod_jk 适用于 HTTP,但 404 适用于 HTTPs
- angular - Angular 11 - 延迟加载模块和 SVG 加载文件的加载延迟
- strapi - 在 Strapi 中构建自定义 SQL 模式
- php - Wordpress 中 add_post_meta() 函数的问题