Я пытаюсь расширить следующий список [(1, [('a', '12'), ('b', '64'), ('c', '36'), ('d', '48')]), (2, [('a', '13'), ('b', '26'), ('c', '39'), ('d', '52')])]
в
[(1,a,12),(1,b,24),(1,c,36),(1,d,48),(2,a,13),(2,b,26),(2,c,39),(2,d,52)]
Я использовал zip (itertools.cycle()) в python 3, но вместо этого получил ссылку на zip-объект. Есть ли другой способ, которым я могу это сделать? Это сработало для python 2
Объект zip
является итерируемым. Как и другие API в Python 3, теперь он возвращает итерируемый объект (например, генератор), который лениво оценивает его ввод, а не возвращает весь результат в list
.
В большинстве случаев вы можете использовать объект так же, как и раньше.
Если вам нужен список, просто вызовите list()
в zip
объекте:
result_list = list(zip(itertools.cycle(...)))
Если объект zip создан правильно, вы можете сделать list(zip_object)
или [*zip_object]
чтобы получить список.
list(zip(...))
должен исправить это[(n,) + tup for n, tuples in thing for tup in tuples]
.