如何将列表复制到list2的长度?

pat*_*250 3 python iterator list

我有一定长度的list1和一定长度的list2。比方说:

list1 = [32, 345, 76, 54]

list2 = [43, 65, 76, 23, 12, 23, 44]
Run Code Online (Sandbox Code Playgroud)

我需要使list1循环返回,直到它的长度与list2相同。或者,如果list1更长,我需要将其缩减为list2的长度。对于上面的示例,我正在寻找:

list1 = [32, 345, 76, 54, 32, 345, 76]
Run Code Online (Sandbox Code Playgroud)

它不一定必须保留在list1中。它可以是一个新列表,我只需要将list1中的相同值循环回一定次数即可。我该怎么做呢?我是python的新手,但是我找不到任何有效的工具。

geo*_*org 6

了解精彩的itertools模块!

from itertools import cycle, islice

result = list(islice(cycle(list1), len(list2)))
Run Code Online (Sandbox Code Playgroud)

如果您只需要“一起”遍历两个列表,这将更加容易:

for x, y in zip(cycle(list1), list2):
    print(x, y)
Run Code Online (Sandbox Code Playgroud)