如何使用format()格式化字典键和值

2024-06-16 12:48:00 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是Python新手,使用python2.7。我正在创建一个程序,打印出一份随机的食谱,里面有配料和说明。我会在最后公布我的代码。我得到的输出是:

Here is a recipe('Sushi', ['tuna', 'rice', 'mayonnaise', 'wasabi'])

  1. Wash off the tuna

但我想要这个:

Here is a recipe: Sushi: tuna, rice, mayonnaise, wasabi

  1. Wash off the tuna

我可以使用format()方法来完成类似的任务吗?在

这是我的代码:

import random

def random_recipe():
    recipe_dict = {'ChocolateCake':['flour', 'eggs', 'chocolate', 'oil', 'frosting'],
                   'Pasta':['noodles', 'marinara','onions'],
                   'Sushi':['tuna','rice','mayonnaise','wasabi']}


    print "Here is a recipe" + str(random.choice(list(recipe_dict.items())))

    if recipe_dict.keys() == 'ChocolateCake':
        print "1. Mix the flour with the eggs"
    elif recipe_dict.keys() == 'Pasta':
        print "1. Boil some water"
    else:
        print "1. Wash off the tuna"

Tags: the代码hereisreciperandomdictprint
3条回答

您可以使用join()来连接dict的值,如下例所示:

from random import choice

recipe_dict = {'ChocolateCake':['flour', 'eggs', 'chocolate', 'oil', 'frosting'],
                   'Pasta':['noodles', 'marinara','onions'],
                   'Sushi':['tuna','rice','mayonnaise','wasabi']}

# Or you can unpack your data:
# key, val = choice(recipe_dict.items())
keys = list(recipe_dict.keys())
random_key = choice(keys)
# Using str.format()
print "Here is a recipe: {}: {}".format(random_key, ', '.join(recipe_dict[random_key]))

if random_key == 'ChocolateCake':
    print "1. Mix the flour with the eggs"
elif random_key == 'Pasta':
    print "1. Boil some water"
else:
    print "1. Wash off the tuna"

由于您是从random中检索元组,请查找下面的工作代码

import random

recipe_dict = {'ChocolateCake':['flour', 'eggs', 'chocolate', 'oil', 'frosting'],
               'Pasta':['noodles', 'marinara','onions'],
               'Sushi':['tuna','rice','mayonnaise','wasabi']}


ra_item = random.choice(list(recipe_dict.items()))
print  "Here is a recipe {}:{}".format(ra_item[0],','.join(ra_item[1]))

if recipe_dict.keys() == 'ChocolateCake':
    print "1. Mix the flour with the eggs"
elif recipe_dict.keys() == 'Pasta':
    print "1. Boil some water"
else:
    print "1. Wash off the tuna"

您将使用此代码获得预期的输出。在

在下面的代码中将a替换为recipe_dict

for k, v in a.items():
    print( k + ': ' + ','.join(map(str, v)))

相关问题 更多 >