我正在做一个python挑战,需要我遍历多个列表,每个元素一个时间,并根据它返回一些计算。我有类似的列表:
a = [2,3,4,5]
b = [7,8,9,0,7]
c = [a, b]
我需要以专栏的方式遍历它们,就像这样:
2 3 4
7 8 9...
由于itertools,我已经看到许多人能够做到这一点,但是我无法导入任何库。我的问题是,使用当前的解决方案,对于大于当前列表元素的值,我的第二个索引超出范围,并且我无法找到一个条件来避免这种情况的发生。 我已经试过切片列表,但是如果我不这样做的话,我会更快。这是我的代码供您参考,其中players [i] [rounds]返回的列样式如我之前所述。
while not(0 in dim_hands):
for i in range(0, 4):
if rounds > len(players[i]):
#do something
word = (players[i][rounds])
num_letters = num_letters - word
if num_letters < 0:
dim_hands[i] -= abs(num_letters)
num_letters = 0
rounds += 1
还有其他方法吗?谢谢!
答案 0 :(得分:0)
使用itertools
或numpy
会更快,但是由于您无法使用任何导入,因此请使用老式的方法进行解决:
我们将从准备要迭代的数据的长度开始,将其设为两个列表之间的最小长度,这样我们就不会出现异常:
min_length = min(len(a), len(b))
然后,我们将迭代长度并一次打印两个数组:
for i in range(min_length):
print(f'{a[i]}, {b[i]}')
这样,我们保证我们只会在两个数组中的位置都打印元素。
我希望这是您的目标,否则请详细说明,我会修复:)