Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表读入函数_Python_List - Fatal编程技术网

Python 将列表读入函数

Python 将列表读入函数,python,list,Python,List,我是新来的,每天都在学习。任何帮助都将不胜感激 因此,我有2个文件,我试图通过以下方式从另一个文件中读取列表: 从第二页导入* main.py listx = [ ["BMW", "True", "99"], ["Honda", "False", "06"], ["Toyota", "True",

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

因此,我有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必须在第二页上。
任何帮助都将不胜感激。谢谢

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

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

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)

也许只需添加另一个参数来查找此函数。
查找此(汽车、列表)

这应该行得通。现在您不需要导入listx。

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

然后,您的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
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)
你的main.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
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)

正如上面所说,您有循环导入:模块彼此导入。排列代码,使依赖项是单向的,例如,将
listx
传递给
find此
作为参数,或将其移动到第二个模块。切勿重新导入正在启动的模块(此处:
main.py
)!这将导致循环导入。问题是,我不能将列表移到另一页,这使我困惑:也不允许添加更多的参数