我正在努力学习列表的理解,为此,我正在努力为以下列表中的每个城市打印第四个字母:
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循环时,我仍然经常感到困惑。。。有人能启发我吗
letter
已经是单个字母,letter[3]
不存在,因为letter
只包含一个字母您不需要两个循环,因为字符串可以被索引
或者
您不需要两个循环,只需执行以下操作:
代码中的错误是,当创建两个for循环时,会对每个字母进行迭代。每个字母都存储为一个长度为1的字符串,因此不能调用
letter[4]
相关问题 更多 >
编程相关推荐