假设我有 2 个相同大小的列表以及以下代码:
list1 = ['tom', 'mary', 'frank', 'joe']
list2 = [1, 2, 3, 4]
for names, numbers in zip(list1, list2):
print names, numbers
我如何为 for 循环的每次迭代使用每个列表中的随机索引?
沿着类似的注释,如果我有 2 个不同大小的列表:
list1 = ['tom', 'mary', 'frank', 'joe', 'john', 'barry']
list2 = [1, 2, 3, 4]
我如何像第一个示例一样使用随机索引,但是这一次,一旦它到达 list2 之外的项目的第一个索引,就开始为 list1 中的其余项目再次随机化 list2 的索引?在这种情况下,zip 不再是正确的使用方法吗?
frank 3
tom 4
john 2
mary 1
barry 4
joe 2
^期望的输出(但完全随机)
请您参考如下方法:
这可行,但有点冗长:
import random
def shuffled(seq):
copy = list(seq)
random.shuffle(copy)
return copy
def rand_repeat(seq):
while True:
for el in shuffled(seq):
yield el
list1 = ['tom', 'mary', 'frank', 'joe', 'john', 'barry']
list2 = [1, 2, 3, 4]
print zip(shuffled(list1), rand_repeat(list2))
