Использование элементов списка в разных частях кода - PullRequest
1 голос
/ 03 марта 2020

Я очень плохо знаком с Python и, таким образом, у меня (возможно, очень глупый) вопрос: у меня есть список с разными номерами, которые я хочу использовать в разных частях кода. Однако каждый номер должен использоваться только один раз и в том же порядке, в котором он указан в списке. Я не уверен, как это понять. Я думал о добавлении большого l oop вокруг кода, который перебирает список, но это было бы не очень элегантно, так как код довольно длинный, а также я не уверен, что это сработает. По сути, я хочу проверить в разных частях кода, соответствует ли элемент списка определенному условию или нет (с последующим выполнением функции, если это так). Это один пример, который должен проверить, удовлетворяет ли один элемент списка 'TargetRand' указанному условию c:

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 пунктов, которые следует последовательно проверять в порядке следования списка в разных частях кода.

Я действительно запутался, как это реализовать и остро нуждается в каких-то идеях! Мне жаль, что я не смог предоставить больше подходов к решению.

Большое спасибо заранее!

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Я не совсем уверен в том, что вы спрашиваете, но «каждое число должно использоваться только один раз и в том же порядке, в котором оно указано в списке», заставляет меня думать, что вы можете использовать pop () особенно потому, что у вас уже есть список, составленный вместе. Если аргумент не указан, он вернет последний элемент и удалит его из списка.

Вывод первого элемента будет выглядеть следующим образом:

>>> 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]
0 голосов
/ 03 марта 2020

Вы говорите: «Я думал о добавлении большого l oop вокруг кода, который перебирает список, но это было бы не очень элегантно, так как код довольно длинный»

Вот почему мы определить функции. Все программирование разбивает вещи на более мелкие этапы, которые имеют смысл там, где они кодируются. Вы никогда не увидите и не поймете всю программу сразу.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...