在 for 循环中打印 Kwargs

printing Kwargs in for loop

我一直在尝试执行此代码以打印出 for 循环中的关键字参数。我尝试同时使用 f 字符串文字和 .format() 方法,但它在 2 行中给出一次输出一个值。有人可以指出这段代码出了什么问题吗?

def myfunc(**kwargs):
    print(kwargs)
    for item in kwargs:
        print(f"my fruit of choice is : {kwargs['fruit']} and my veggie is: {kwargs['veggie']}")

myfunc(fruit='Apple',veggie='Lettuce')


如评论中所述,不需要包含两个项目的循环,但这里是一个更正版本,其中包含一个适用于任意数量输入的循环:

def myfunc(**kwargs):
    print(kwargs)
    stringlist = []
    for i, item in enumerate(kwargs):
        if i == 0:
            string = f"my {item} of choice is: {kwargs[item]}"
        else:
            string = f"my {item} is: {kwargs[item]}"
        stringlist.append(string)
    stringlist[-1] = "and " + stringlist[-1]
    if len(kwargs) >= 3:
        print(', '.join(stringlist)+'.')
    else: 
        print(' '.join(stringlist)+'.')

myfunc(fruit='Apple',veggie='Lettuce')

我不会使用冒号,因为它们在语法上不正确,但我保留了它们以匹配您最初的预期输出。