如果键与输入匹配,则打印键和值?
Print key AND value if key matches input?
我有字典和要打印的 for 循环:
car_dict = {'Sports':{'Audi':'A4',
'Ferarri':'Spider'}}
for key, value in car_dict.items():
if key == 'Sports':
print(key, value)
因此,如果输入 == "Sports",它将打印:
Sports {'Audi': 'A4', 'Ferarri': 'Spider'}
如何打印它,使其看起来像:
-Sports-
Audi A4
Ferrari Spider
有一个小标题(不是必需的),一个在另一个之上并且没有 dict 语法?
我已经弄乱了一段时间,似乎找不到解决方案。这是我最远的地方!谢谢
如果键是“Sports”,您可以迭代该值:
for key, value in car_dict.items():
if key == 'Sports':
print('-', key)
for pair in value.items():
print(*pair)
输出:
- Sports
Audi A4
Ferarri Spider
我会将打印结果考虑到另一种方法,因为您可能会有多个类别的汽车。
此外,您可以使用 f-strings 轻松格式化输出。
您可能还想考虑使用 multi line strings,将 """
与 f-strings 结合使用以获得良好的多行输出。请参阅下面的示例。
car_dict = {
'Sports': {'Audi': 'A4', 'Ferarri': 'Spider'}
}
def print_category(cat_name, cars):
print(f"- {cat_name} -")
for (brand, model) in cars.items():
print(brand, model)
def print_category_multiline(cat_name, cars):
print(f"""
+---------------------------+
{cat_name}
+---------------------------+""")
for (brand, model) in cars.items():
print(brand, model)
for key, value in car_dict.items():
print_category(key, value)
print_category_multiline(key, value)
预期输出
- Sports -
Audi A4
Ferarri Spider
+---------------------------+
Sports
+---------------------------+
Audi A4
Ferarri Spider
您在 for
循环中的 if
条件目前实际上没有做任何事情,因为您只有汽车的运动类别,因此您不需要它。如果您想对类别进行一些过滤(当您有更多类别时),我当然会创建一组类别并检查当前类别是否在过滤器内的 for 循环。这看起来可以像这样完成:
cat_filter = {"Sports", "Offroad"}
for key, value in car_dict.items():
# only print filtered values
if key in cat_filter:
print_category(key, value)
print_category_multiline(key, value)
我有字典和要打印的 for 循环:
car_dict = {'Sports':{'Audi':'A4',
'Ferarri':'Spider'}}
for key, value in car_dict.items():
if key == 'Sports':
print(key, value)
因此,如果输入 == "Sports",它将打印:
Sports {'Audi': 'A4', 'Ferarri': 'Spider'}
如何打印它,使其看起来像:
-Sports-
Audi A4
Ferrari Spider
有一个小标题(不是必需的),一个在另一个之上并且没有 dict 语法? 我已经弄乱了一段时间,似乎找不到解决方案。这是我最远的地方!谢谢
如果键是“Sports”,您可以迭代该值:
for key, value in car_dict.items():
if key == 'Sports':
print('-', key)
for pair in value.items():
print(*pair)
输出:
- Sports
Audi A4
Ferarri Spider
我会将打印结果考虑到另一种方法,因为您可能会有多个类别的汽车。
此外,您可以使用 f-strings 轻松格式化输出。
您可能还想考虑使用 multi line strings,将 """
与 f-strings 结合使用以获得良好的多行输出。请参阅下面的示例。
car_dict = {
'Sports': {'Audi': 'A4', 'Ferarri': 'Spider'}
}
def print_category(cat_name, cars):
print(f"- {cat_name} -")
for (brand, model) in cars.items():
print(brand, model)
def print_category_multiline(cat_name, cars):
print(f"""
+---------------------------+
{cat_name}
+---------------------------+""")
for (brand, model) in cars.items():
print(brand, model)
for key, value in car_dict.items():
print_category(key, value)
print_category_multiline(key, value)
预期输出
- Sports -
Audi A4
Ferarri Spider
+---------------------------+
Sports
+---------------------------+
Audi A4
Ferarri Spider
您在 for
循环中的 if
条件目前实际上没有做任何事情,因为您只有汽车的运动类别,因此您不需要它。如果您想对类别进行一些过滤(当您有更多类别时),我当然会创建一组类别并检查当前类别是否在过滤器内的 for 循环。这看起来可以像这样完成:
cat_filter = {"Sports", "Offroad"}
for key, value in car_dict.items():
# only print filtered values
if key in cat_filter:
print_category(key, value)
print_category_multiline(key, value)