2016-07-20 22 views
-2

我有一个返回字典(details_dict)并希望在另一个函数(内容)中打印此字典的函数(项目)。在函数中返回一个字典,然后在另一个函数中打印它的内容

details_dict的内容后for循环的是:

details_dict = { 
'car' : 'fast', 
'bike' : 'faster', 
'train' : 'slow' 
} 

这里有两个功能我实现了,但我不知道他们是对的。

def items(root): 
    for a in list: # example for loop, not important but details_dict is created here 
     details_dict = ['name' : 'state'] 
    return details_dict 

def contents(root): 
    for name, state in details_dict.items(): 
     print ("%s is set to %s" % (name, state) 
+1

是details_dict已经创造出来的?如果是这样,为什么它在项目函数中被重新创建(尽管是错误的)?什么是项目功能在做什么? – Samuel

+0

不,它是通过for循环在项目(根)中创建的,il编辑问题 – zubinp

+4

*我不确定它们是否正确。* - [尝试看看](https://repl.it/CeJY/0)。它工作吗?它做什么而不是工作? – TessellatingHeckler

回答

0

有没有在你的打印语句和可能的缩进问题,缺少的括号。下面是你在做什么修改后的版本,忽略的字典是如何构建的细节:

def buildItems(): 
    return { 
     'car': 'fast', 
     'bike': 'faster', 
     'train': 'slow' 
    } 

def contents(): 
    details_dict = buildItems() 
    for name, state in details_dict.items(): 
     print ("%s is set to %s" % (name, state)) 

contents() 

输出:

car is set to fast 
train is set to slow 
bike is set to faster 

如果这是你想要它做什么,它的工作原理。您可以在contents()函数内成功打印在另一个函数中创建的字典。

+0

请注意,在Python中,字典不保留顺序。如果您需要维护订单,请尝试[OrderedDict](https://pymotw.com/2/collections/ordereddict.html) – voodoodrul

0

不知道你的数据结构,我做了一个最好的猜测。

list_a = ['car', 'bike', 'train'] 
list_b = ['fast', 'faster', 'slow'] 

def items (one, two): 
    the_dict = {} 
    for (i,j) in zip(one, two): 
     the_dict[i] = j 
    return the_dict 

def contents(a_dict): 
    for key in a_dict: 
     print 'The key ' +key+ ' is assigned to '+a_dict[key] 

details_dict = items(list_a, list_b) 

contents(details_dict) 

,输出:

The key car is assigned to fast 
The key train is assigned to slow 
The key bike is assigned to faster 
相关问题