如何使用列表理解/双forloops访问元素?问题解决索引器。

2024-09-28 17:25:49 发布

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

我正在努力学习列表的理解,为此,我正在努力为以下列表中的每个城市打印第四个字母:

word_list = ["Amsterdam", "Hannover", "Milano", "Paris", "London", "Glasgow", "Dublin", "Tokyo", "Canberra"]

我想我需要一个双for循环,一个访问列表中的城市,一个访问每个城市的字母。然而,当我试着把它放进一个列表中,比如:

listcomprehension = [letter[3] for word in word_list for letter in word]
print(listcomprehension)

我得到以下错误:

IndexError: string index out of range

我认为这可能是我对列表理解的一个错误(因为我是新来的),所以我尝试使用一个普通的双for循环来实现我的目标:

for word in word_list:
    for letter in word:
        print(letter[3])

我做错什么了?所有城市都有4个以上的字母,所以我不明白为什么会发生这种错误。我对编程相当陌生,在使用double for循环时,我仍然经常感到困惑。。。有人能启发我吗


Tags: in列表for错误字母listwordprint
2条回答

letter已经是单个字母,letter[3]不存在,因为letter只包含一个字母

您不需要两个循环,因为字符串可以被索引

listcomprehension = [word[3] for word in word_list]

或者

for word in word_list:
    print(word[3])

您不需要两个循环,只需执行以下操作:

word_list = ["Amsterdam", "Hannover", "Milano", "Paris", "London", "Glasgow", "Dublin", "Tokyo", "Canberra"]

for item in word_list:
    print(item[3])

代码中的错误是,当创建两个for循环时,会对每个字母进行迭代。每个字母都存储为一个长度为1的字符串,因此不能调用letter[4]

相关问题 更多 >