我正在使用divmod()函数,并尝试按顺序运行整数变量和整数列表。我使用for循环尝试为列表中的每个元素尝试接收两对值' test',但我似乎无法获取列表中的任何元素(除了元素[1]和[2])用divmod()打印。
代码应该像:
一样运行这就是发生的事情:
以下是代码:
test = [1, 2, 5, 10]
a = int(raw_input('Input: '))
b = int(raw_input('Input: '))
for i in test:
print divmod(b, test[i])
我可以这样做:
print divmod(b, 1)
print divmod(b, 2)
print divmod(b, 5)
print divmod(b, 10)
或:
print divmod(b, test[0])
print divmod(b, test[1])
print divmod(b, test[2])
print divmod(b, test[3])
然而,它似乎效率低下且冗余,我觉得有更好的方法将列表中的元素放入函数中而不必单独调用每个元素?
答案 0 :(得分:1)
test
的有效索引是:
test[0] #which is 1
test[1] #which is 2
test[2] #which is 5
test[3] #which is 10
超过3
的任何索引超出范围。
如果您只想从test
逐个传递值,请执行
for i in test:
print divmod(b, i)
这与你所写的不同:
for i in test:
print divmod(b, test[i])
这会尝试执行:
print divmod(b, test[1]) # ok, though not the element you want
print divmod(b, test[2]) # ok, though not the element you want
print divmod(b, test[5]) # out of range!
print divmod(b, test[10]) # out of range!
答案 1 :(得分:0)
for i in test:
print divmod(b, i)