Python初学者;用于循环和拉链

2024-04-25 16:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我是大一的计算机科学专业的学生。我正在上一门教授Python的课。这是我的任务:

创建一个以字符串和列表为参数的函数。字符串应该包含字母表的前10个字母,列表应该包含每个字母对应的数字。将字符串和列表压缩到一个元组列表中,元组将每个字母和数字配对。然后函数应在单独的行上分别打印数字和相应的字母。提示:使用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行有个错误,它说“letter”没有定义。我觉得应该有一个for循环,但是,我不知道如何合并它。请帮帮我。你知道吗


Tags: 函数字符串alphanumber列表参数专业字母
2条回答

zip适用于iterables(字符串和列表都是iterables),因此您不需要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

相关问题 更多 >