Я чувствую, что у меня есть все части этого велосипеда, кроме сиденья и руля.И с моим пониманием этого языка у меня еще нет названия «сиденье» и «руль», кроме «вещь для рук, которая вращает колесо» и «мы должны стоять, чтобы ездить на этой вещи?»
У меня есть список, который содержит кортежи ID, цели и тега.Идентификатор и цель объединены в пару и используются для очереди заданий, которая может привести к пропуску или неудаче.
Если идентификатор пройдет, я бы хотел, чтобы все другие кортежи, содержащие этот идентификатор, были удалены из списка, что позволитобновленный список для продолжения итерации.Если идентификатор не удался, я бы хотел, чтобы только этот попытавшийся идентификатор и его элементы кортежа были удалены из списка - чтобы у того же идентификатора (кортежей, содержащих этот идентификатор) была возможность попробовать другую цель.
НижеЯ опубликовал желаемые результаты, одну из множества попыток кодирования и пару других сообщений StackOverflow, относящихся к этой проблеме.Моя попытка кодирования, вероятно, неудачная попытка решить проблему.Мое понимание понимания списка ограничено, но я чувствую, что это может быть полезно здесь.Я также подумал об использовании словаря.
Смежные вопросы:
Попытка кодирования
s,m,l = ("s","m","l")
list = [(11, '853', s), (12, '853', s), (13, '853', m),
(11, '421', l), (12, '421', l), (13, '421', s)]
passlist=[]
faillist=[]
jobfail = 13
jobpass = 11
def process(list):
for e in list:
if jobfail in e:
print("jobfail:", e)
faillist.append(e)
list.pop()
continue
if jobpass in e:
print("jobpass:", e)
passlist.append(e)
list.pop()
print("list is now:", list)
return passlist,faillist
print("original list:", list)
process(list)
print("passlist:", passlist)
print("faillist:", faillist)
print("final list:", list)
Желаемые результаты
('original list:', [(11, 853, 's'), (12, 853, 's'), (13, 853, 'm'), (11, 421, 'large'), (12, 421, 'large'), (13, 421, 's')])
Processing 11 -> 853
('jobpass:', (11, 853, 's'))
('passlist:', [(11, 853, 's')])
('faillist:', [])
Any tuple with id = 11 is removed:
('list is now:', [(12, 853, 's'), (13, 853, 'm'), (12, 421, 'large'), (13, 421, 's')])
Processing 12 -> 853
('jobpass:', (12, 853, 's'))
('passlist:', [(11, 853, 's'), (12, 853, 's')])
('faillist:', [])
Any tuple with id = 12 is removed:
('list is now:', [(13, 853, 'm'), (13, 421, 's')])
Processing 13 -> 853
('jobfail:', (13, 853, 'm'))
('passlist:', [(11, 853, 's'), (12, 853, 's')])
('faillist:', [(13, 853, 'm')])
We had a failure, so let's try the next pairing:
('list is now:', [(13, 421, 's')])
Processing 13 -> 421
('jobpass:', (13, 421, 's'))
('passlist:', [(11, 853, 's'), (12, 853, 's'), (13, 421, 's')])
('faillist:', [(13, 853, 'm')])
('list is now:', [])