在另一个函数中打印函数的字典值

时间:2016-05-17 01:59:24

标签: python python-3.x

我试图编写一个循环函数,提示用户从第一个函数输入一个键,如果它是一个键,那么它会打印它的值。如果输入的单词不在字典中,则返回"没有输入"。

到目前为止我有什么。

def read_ticker():
    c = {}
    with open('tickers.csv') as f:
        for line in f:
            items = [item.strip('"').strip() for item in line.split(",")]
            c[items[0]] = items[1:]

    print(c)

read_ticker()

d = read_ticker()

def ticker():

    x = input('Ticker: ')
    if x in d:
        return x[c]
    else:
        return 'No entry'
ticker()

如何返回在第二个函数中输入的键的值?

3 个答案:

答案 0 :(得分:1)

你永远不会在read_ticker中返回你的字典,而且你不清楚为什么要两次调用这个函数。

print(c)放置return c

我认为你想索引dict而不是索引输入。

此外,您正在编入索引的c是什么?这是未定义的。我假设这是read_ticker中定义的字典。在这种情况下,您需要d[x]

字典c不是全局的,虽然您可以将其定义为,但是您无法通过c在其他函数中访问它(忽略即使可能,索引也是向后的)。相反,由于字典是函数read_ticker的本地字典并在那里修改,我们返回字典并将其存储在变量d中。

答案 1 :(得分:0)

你的read_ticker()函数应该返回c:

def read_ticker():
    c = {}
    with open('tickers.csv') as f:
        for line in f:
            items = [item.strip('"').strip() for item in line.split(",")]
            c[items[0]] = items[1:]

    print(c)
    return c

然后您可以按如下方式修改您的股票代码功能:

def ticker():
    x = input('Ticker: ')
    if x in d.keys():
        return d[x]
    else:
        return 'No entry'

答案 2 :(得分:0)

您的自动收报机功能可以使用get,如果密钥不存在,您可以给出一个值,如下所示:

def ticker():
    x = input('Ticker: ')
    return d.get(x, "No entry")