将列表读入函数

2024-06-29 01:14:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的,每天都在学习。任何帮助都将不胜感激

因此,我有2个文件,我试图通过以下方式从另一个文件中读取列表:

从第二页导入*

main.py

listx = [ ["BMW", "True", "99"], 
          ["Honda", "False", "06"],
          ["Toyota", "True", "88 ]  ]

x = input("What car are you looking for? : ")
findthis(x)

2ndpage.py

from main import listx
def findthis(car):
    for row in listx:
        i=0
        if car in listx[i]:
            print(car)     # printing all the list that contains the car name
        else:
            i=+1

AttributeError:部分初始化的模块“2ndpage”没有属性“findthis”(很可能是由于循环导入)

我不知道该怎么做。列表必须位于主页面上,并调用主页面上的函数。函数def必须在第二页上。 任何帮助都将不胜感激。多谢各位


Tags: 文件the函数inpytrue列表for
3条回答

这是典型的循环依赖项导入。如果简单地说:您尝试将主文件导入到第二个页面,并将第二个页面导入到主页面,它们会在循环中不断导入自己

因此,您需要将列表移动到一个文件中,如:

listx = [ ["BMW", "True", "99"], 
          ["Honda", "False", "06"],
          ["Toyota", "True", "88" ]
        ]

def findthis(car):
    for row in listx:
        i=0
        if car in listx[i]:
            print(car)     # printing all the list that contains the car name
        else:
            i=+1

main.py中,您只需

findthis(x)

也许只需添加另一个参数来查找此函数。 findthis(car,list) 这应该行得通。现在您不需要导入listx

正如其他人提到的,您的代码会导致循环导入。您可以做的一件事是让findthis将列表和名称作为参数,然后将其从2ndpage.py导入main.py并使用listxx作为参数调用

然后,您的2ndpage.py将如下所示:

def findthis(car_list, car_name):
    for row in car_list:
        i=0
        if car_name in car_list[i]:
            print(car_name)
        else:
            i=+1

还有你的main.py类似这样的东西:

from 2ndpage import findthis

listx = [ ["BMW", "True", "99"], 
          ["Honda", "False", "06"],
          ["Toyota", "True", "88" ] ]

x = input("What car are you looking for? : ")
findthis(listx, x)

相关问题 更多 >