[英]Beginner in Python; For Loops & Zips
因此,我是一名大一新生。 我正在上一門教Python的課程。 這是我的任務:
創建一個將字符串和列表作為參數的函數。 該字符串應包含字母表的前十個字母,列表應包含每個字母的對應數字。 將字符串壓縮並列出為將每個字母和數字配對的元組列表。 然后,該功能應在單獨的行上分別打印數字和相應的字母。 提示:使用zip函數和循環!
這是我到目前為止的內容:
def alpha(letter, number):
letter = "abcdefghij"
number = [1,2,3,4,5,6,7,8,9,10]
return zip(letter, number)
print alpha(letter, number)
我的問題是第5行出現錯誤,提示未定義“字母”。 我覺得應該有一個for循環,但是,我不知道如何合並它。 請幫我。
zip
適用於可迭代對象(字符串和列表都是可迭代對象),因此您不需要for循環即可生成對,因為zip
本質上就是為您完成了for循環。 看起來您想要for循環來打印對。
您的代碼有些混亂,通常需要在函數之外定義變量,並使函數盡可能通用:
def alpha(letter, number):
for pair in zip(letter, number):
print pair[0], pair[1]
letter = "abcdefghij"
number = [1,2,3,4,5,6,7,8,9,10]
alpha(letter, number)
您遇到的錯誤是由於變量的范圍引起的。 您正在函數內部定義letter
和number
,因此當您調用alpha(letter,number)
它們尚未定義。
要打印結果,可以迭代zip
的結果,如以下示例所示:
def alpha(letters, numbers):
for c,n in zip(letters,numbers):
print c,n
letters = "abcdefghij"
numbers = range(1,11)
alpha(letters, numbers)
輸出:
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
i 9
j 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.