簡體   English   中英

Python初學者; 對於循環和拉鏈

[英]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)

您遇到的錯誤是由於變量的范圍引起的。 您正在函數內部定義letternumber ,因此當您調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM