我需要一些帮助来解决学校使用python的家庭作业问题。提示很简单,但我似乎无法弄明白。
'''
rem(A,B) returns the list
[A[0]%B[0], A[1]%B[1], ...] etc
>>> rem( (10,20,30), (7,8,9) )
[3, 4, 3]
>>> X = [ i for i in range(10,18) ]
>>> Y = [ j+3 for j in range(8) ]
>>> rem(X,Y)+["?"]
[1, 3, 2, 1, 0, 7, 7, 7, '?']
>>> rem( [5,3], [3,2] )
[2, 1]
>>> rem( [10,9], [5,4] )
[0, 1]
'''
我已经创建了这段代码片段,但有点不行:
def rem(A,B):
return [A[0] % b for b in B]
现在定义正常,但仅适用于每个序列中的第一个值。我认为这是由于A[0]
- 我需要一些方法来做A[x+1]
,但我不确定。此外,我非常确定我必须在定义中的某处使用range()
。
答案 0 :(得分:5)
您需要将A
的每个元素与B
中的相应元素配对,然后修改它们。
[x % y for (x, y) in zip(A, B)]
答案 1 :(得分:0)
Ignacio's answer是正确的,也是最pythonic的,这是更基本的方式:
def rem(a,b):
l = []
for x in range(len(a)):
l.append(a[x]%b[x])
return l
另见评论!