Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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_Python 3.x_List - Fatal编程技术网

Python 在代码的不同部分使用列表元素

Python 在代码的不同部分使用列表元素,python,python-3.x,list,Python,Python 3.x,List,我对Python非常陌生,因此有一个问题(可能非常愚蠢): 我有一个不同编号的列表,我想在代码的不同部分使用它。但是,每个数字只能使用一次,并且使用顺序与列表中出现的顺序相同。我不知道该如何认识到这一点。我曾考虑在代码周围添加一个大循环来遍历列表,但这并不十分优雅,因为代码相当长,而且我也不确定这是否可行。 基本上,我想做的是在代码的不同部分检查列表项是否满足特定条件(如果满足,则执行函数)。这是一个应检查列表“TargetRand”中的一项是否满足特定条件的示例: TargetRand= [1

我对Python非常陌生,因此有一个问题(可能非常愚蠢): 我有一个不同编号的列表,我想在代码的不同部分使用它。但是,每个数字只能使用一次,并且使用顺序与列表中出现的顺序相同。我不知道该如何认识到这一点。我曾考虑在代码周围添加一个大循环来遍历列表,但这并不十分优雅,因为代码相当长,而且我也不确定这是否可行。 基本上,我想做的是在代码的不同部分检查列表项是否满足特定条件(如果满足,则执行函数)。这是一个应检查列表“TargetRand”中的一项是否满足特定条件的示例:

TargetRand= [1,2,3,2,2,1,2,3,1,2,3,1,2]
WordList = ["dog", "cat", "frog", "mouse", "chicken", "penguin"]
WordList2 = ["tomato", "cucumber", "apple", "carrot", "cheese", "bread"]
WordList3 = ["car", "bike", "shoe", "board", "wheel", "door"]

def SwapWord1():
   swap= TargetRand[x]
   print(swap) #debug check
   if swap == 1:
       a= list(range(1,6))
       m= random.choice(a)
       WordList[m] = "target"
   print(WordList) #debug check

def SwapWord2():
   swap= TargetRand[x]
   print(swap) #debug check
   if swap == 2:
       a= list(range(1,6))
       m= random.choice(a)
       WordList2[m] = "target"
   print(WordList2) #debug check

def SwapWord3():
   swap= TargetRand[x]
   print(swap) #debug check
   if swap == 3:
       a= list(range(1,6))
       m= random.choice(a)
       WordList3[m] = "target"
   print(WordList3) #debug check

然后,“x”应该是列表中的相应项。这只是使用列表项的代码的简化部分,还有其他部分需要检查下一项。总的来说,该列表包含大约70个项目,这些项目应按照代码不同部分中列表的顺序进行连续检查

我真的很困惑,如何认识到这一点,迫切需要一些想法!很抱歉,我无法提供更多的解决方法


提前非常感谢

我不完全确定你在问什么,但“每个数字只能使用一次,并且按照列表中出现的顺序”让我认为你可以使用,特别是因为你已经有了一个列表。当没有给出参数时,它将返回最后一个元素并将其从列表中删除

弹出第一个元素将如下所示:

>>> TargetRand = [1,2,3,2,2,1,2,3,1,2,3,1,2]
>>> x = TargetRand.pop(0)
>>> print(x)
1
>>> print(TargetRand)
[2,3,2,2,1,2,3,1,2,3,1,2]
您会说:“我正在考虑在遍历列表的代码周围添加一个大循环,但这并不十分优雅,因为代码相当长”

这就是我们定义函数的原因。所有的编程都是把事情分解成有意义的小步骤,在那里进行编码。您永远不会同时查看和理解整个程序

def DoStuffWithNumber(x):
    # all your code here
    ...

# set up data/lists here
...

# put a loop around them here with two lines of code
for x in TargetRand:
    DoStuffWithNumber(x)

请提供一份你要去的地方。这不是我的原始代码,但它太长且不必要地复杂(而且我的列表是读取的excel文件)。您的代码对我来说没有多大意义。首先,将其重写为一个函数并不难。每当你创建一个后面有数字的函数时,开始意识到你做错了什么。尤其是当您有这么多重复代码时。X很可能是一个随机数,但是有了这个随机数,你可以在6个数字的列表中选择一个没有重复的随机数。。我明白你的意思。事实上,这些是不同的函数,包含不同种类的刺激(听觉、图像、文字)的单独列表,并且是发挥这些刺激的函数的一部分,因此它们为什么分开就更有意义了。我在另一个文件中创建了带有随机化函数(具有特定条件)的列表TargetRand,并将其导入。此列表用于确定是否交换元素(它实际上只包含0和1)。也许这不是最好的编码方式,但正如我提到的,我对编码非常陌生,上周才开始。“这只是代码中使用列表项的简化部分,还有其他部分需要检查下一项。”->抱歉,我错过了这部分。您可以创建一个类来将所有数据存储到该类的实例中。您可以创建一个基本类,其他类可以扩展这些函数。你说你刚刚开始,你是说用python还是编程?谢谢!但是,我如何管理这个大循环中的每个函数都会得到比前一个循环更多的项,而不仅仅是当前迭代的列表项?它甚至看不到TargetRand。它只使用x,我们从列表中获取x并将其作为一个参数传递,但它不是在所有函数的一次迭代中使用相同的x吗?我想每个x只使用一次,然后移动到下一个。我曾考虑使用x作为第一个函数的参数,在r中使用x+1作为第二个函数,在第三个函数中使用x+2,但为了不重复列表项,下一次迭代必须从x+2开始。@Pythonymus我相信我的答案涵盖了该用例。哦,我没有看到它!我会试试看,非常感谢!没问题!如果这个答案对你有帮助,不要忘记接受它:)