После того, как вы итерируете объект itertools.combinations
один раз, он израсходован, и вы не можете повторить его во второй раз.
Если вам нужно повторно использовать его, правильный способ - сделать его list
или tuple
, как вы это сделали. Все, что вам нужно сделать, это дать ему имя (назначить его переменной), чтобы оно оставалось без изменений.
combList = list(combObject) # Don't iterate over it before you do this!
Если вы хотите повторить его всего один раз, вы просто не вызываете list
для него вообще:
for i in combObj: # Don't call `list` on it before you do this!
print(i)
Примечание: стандартный способ именования экземпляров / нормальных переменных объекта будет comb_obj
, а не combObj
. См. PEP-8 для получения дополнительной информации.
Чтобы преобразовать внутренние tuple
с в list
с, используйте понимание списка и встроенное list()
:
comb_list = [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
comb_list = [list(item) for item in comb_list]