如何在Python中用字典中的值替换函数变量

时间:2018-11-21 18:33:40

标签: python

我试图遍历下面的字典,并用字典中的值替换函数内的“字符串”变量,然后执行该函数。我正在考虑编写一个for循环,然后将功能包括在for循环内。请帮忙。

预期功能:

def my_function(fname):
    string = value  
    print(string + " Refsnes")

my_function("string")
 dict = {"kafka":[{
"value":"I am"},
{"value":"You are"},
{"value":"They are"}
]}

def my_function(fname):
    string = "I am"  
    print(string + " Refsnes")

my_function("string")

2 个答案:

答案 0 :(得分:0)

这里有几件事。您是从其他地方获得字典的,还是您自己设置的?是否需要定义函数的特定原因?如果您要自行设置它,我建议您使用列表而不是字典,并且仅自己进行一个for循环,就像这样:

kafka = ['I am ', 'You are ', 'They are']
for k in kafka:
    print(k + 'Refsnes')

如果您需要将其用作字典并且需要将其用作函数,则可以这样处理。 (请注意,您不需要从字典中提取项目的函数,因此我实际上会将循环放在函数中。)

kafkadict = {"first person": "I am", "second person": "You are", "third person plural": "They are"}
def printKafkaStuff(dictinput):
    for k in dictinput.values():
        print(k + " Refsnes")

然后用

调用
printKafkaStuff(kafkadict)

答案 1 :(得分:0)

最好的办法是首先修改您的字典。现在,“ kafka”映射到所有具有相同密钥的字典列表,因此为什么要麻烦并首先拥有一个密钥。 因此,您可能会有一个像这样的字典:

dictionary = {"kafka": ["I am", "You are", "They are"]}

也不要调用变量dict,因为您将覆盖内置函数dict,这使其无法使用。

然后,您还必须更改功能以实际使用参数。

def my_function(string):
    print(string + " Refsnes")

现在,要遍历字典,请使用两个值来打印带有所有值的函数。

首先循环访问字典中的列表,然后重复调用该函数:

for string in dictionary["kafka"]:
    my_function(string)

或者为您的函数提供一个列表,然后遍历该函数中的列表。您的函数将如下所示:

def my_function(list_of_strings):
    for string in list_of_strings:
        print(string + " Refsnes")

# Call function with 
my_function(dictionary["kafka"])