以错误的方式迭代和打印列表

Avi*_*ión 2 python python-2.7

有以下两个清单:

sist = ["item1", "item2", "item3"]
numbers = [2,1,4]
Run Code Online (Sandbox Code Playgroud)

我想打印sist相同索引的次数的元素numbers.

这意味着在发布的示例中,我想要的输出是:

item1
item1
item2
item3
item3
item3
item3
Run Code Online (Sandbox Code Playgroud)

这是我尝试过没有成功的事情:

for idx in xrange(len(sist)):
    for num in numbers:
        i = 0
        print num
        while i < num:
            print sist[idx]
            i = i + 1 
Run Code Online (Sandbox Code Playgroud)

我想我正在以错误的方式迭代,因为我得到了这个输出:

2
item1
item1
1
item1
4
item1
item1
item1
item1
2
item2
item2
1
item2
4
item2
item2
item2
item2
2
item3
item3
1
item3
4
item3
item3
item3
item3
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我我做错了什么以及如何解决它?

Cor*_*mer 5

如果您想使用这样的嵌套for循环,您可以这样做

for item, rep in zip(sist, numbers):
    for _ in range(rep):
        print(item)
Run Code Online (Sandbox Code Playgroud)

产量

item1
item1
item2
item3
item3
item3
item3
Run Code Online (Sandbox Code Playgroud)


Ana*_*mar 5

你可以使用zip函数将两个列表连接到它们对应的索引,然后打印第一个元素(来自sist)作为第二个元素的次数(来自数字)

sist = ["item1", "item2", "item3"]
numbers = [2,1,4]
for x, y in zip(sist, numbers):
    for _ in range(y):
        print(x)
Run Code Online (Sandbox Code Playgroud)

输出是 -

item1
item1
item2
item3
item3
item3
item3
Run Code Online (Sandbox Code Playgroud)