返回多个字典的函数

时间:2018-03-11 16:44:07

标签: python-3.x

我试图退出某个功能但无法找到合适的解决方案

def importer():
    with open('books.txt','r') as f:
        for line in f:
            books = line.strip().split(',')
            print(books)


    with open('ratings.txt','r') as f:
        for line in f:
            ratings = line.strip().split(' ')
            print(ratings)

     return ratings,books

 importer()

 print(books,ratings)

使用此方法,当我离开函数时,字典再次为空。为了解决这个问题,我将功能设置为

books = importer()

但不确定如何为多个词典执行此操作

1 个答案:

答案 0 :(得分:1)

 ratings, books = importer()

应该是您在打印声明正上方缺少的代码行。

Python会自动映射返回的变量。这被称为价值拆包。 例如,此代码将1,2,3映射为x,y,z:

x, y, z = [1,2,3]

您需要提供所提供的确切数量的变量。干 x,y = [1,2,3]将返回错误,就像x,y,z,a = [1,2,3]

一样

有一种方法可以绕过这个,使用*

x,*y,z = [1,2,3,4,5]

x = 1

y = [2,3,4]

z = 5

python的这个属性,解包值,比列表更深入。几乎任何东西都可以解压缩 - 元组,列表,字典,独立值等。