我需要一點幫助,爲學校使用python的作業問題。提示很簡單,但我似乎無法弄清楚。如何在這個簡單的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()
。
提問者已經熟悉LC。我的回答只是說明'zip()'和元組在迭代過程中解包,這是最後兩個缺失的概念。並且請不要編寫遍歷'range(len(...))'的代碼。 –
@ IgnacioVazquez-Abrams你是對的,他很熟悉他們。抱歉。但是爲什麼'range(len())'不能轉發?或者你爲什麼這麼說?正如我所說,我認爲你的答案更好,我只是想增加另一種選擇。 – Trufa
使用'range(len(...))'需要多個索引操作來檢索對象,而不是'zip()'(或'itertools.izip()')直接暴露對象。 –