如何使用列表理解/双 for 循环访问元素?问题解决IndexError。
How to access elements using list comprehensions / double for-loops? Problem solving IndexError.
我正在尝试学习列表理解,为此我正在尝试打印以下列表中每个城市的第四个字母:
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 个字母,所以我不明白为什么会出现此错误。我是编程的新手,在使用双 for 循环时我仍然经常感到困惑......有人可以启发我吗?
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]
.
我正在尝试学习列表理解,为此我正在尝试打印以下列表中每个城市的第四个字母:
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 个字母,所以我不明白为什么会出现此错误。我是编程的新手,在使用双 for 循环时我仍然经常感到困惑......有人可以启发我吗?
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]
.