IndexError: list index out of range when if len(listx[i]) > n
IndexError: list index out of range when if len(listx[i]) > n
如果我的问题太基础,我提前道歉。我也试图在以前的帖子中找到答案,但它们并不是我要找的。
我正在为这个练习而苦恼:
编写一个程序,逐一分析单词列表的所有元素(例如
示例:['Jean'、'Maximilien'、'Brigitte'、'Sonia'、'Jean-Pierre'、'Sandra'])
生成两个新列表。一个将包含少于 6 个字符的单词,
另一种是6个字符以上的单词。
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
i = 0
while i <= 13 :
if len(liste1[i]) > 6:
moins6.append(liste1[i])
else:
plus6.append(liste1[i])
i +=1
我收到错误“IndexError:列表索引超出范围”
你能建议我正确的写法吗(while循环)
非常感谢
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
for word in liste1:
if len(word) > 6:
moins6.append(word)
else: plus6.append(word)
print(moins6)
print(plus6)
输出:
['Maximilien', 'Brigitte', 'Jean-Pierre']
['Jean', 'Sonia', 'Sandra']
根据您的代码,您的 i
值将从 0 变为 13
而您的输入列表中只有 6 个元素
所以你的 i
值应该从 0 到 5
如果您不知道输入大小,可以使用 len()
来查找
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
i = 0
while i < len(liste1) : # here is your error
if len(liste1[i]) > 6:
moins6.append(liste1[i])
else:
plus6.append(liste1[i])
i +=1
print(liste1, moins6, plus6)
['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
['Maximilien', 'Brigitte', 'Jean-Pierre']
['Jean', 'Sonia', 'Sandra']
您可以遍历列表,找到每个元素的 len
,并将其追加到适当的列表中:
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
for elem in liste1:
if len(elem) < 6:
moins6.append(elem)
else:
plus6.append(elem)
print(plus6)
print(moins6)
输出:
['Maximilien', 'Brigitte', 'Jean-Pierre', 'Sandra']
['Jean', 'Sonia']
如果我的问题太基础,我提前道歉。我也试图在以前的帖子中找到答案,但它们并不是我要找的。
我正在为这个练习而苦恼:
编写一个程序,逐一分析单词列表的所有元素(例如 示例:['Jean'、'Maximilien'、'Brigitte'、'Sonia'、'Jean-Pierre'、'Sandra']) 生成两个新列表。一个将包含少于 6 个字符的单词, 另一种是6个字符以上的单词。
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
i = 0
while i <= 13 :
if len(liste1[i]) > 6:
moins6.append(liste1[i])
else:
plus6.append(liste1[i])
i +=1
我收到错误“IndexError:列表索引超出范围”
你能建议我正确的写法吗(while循环)
非常感谢
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
for word in liste1:
if len(word) > 6:
moins6.append(word)
else: plus6.append(word)
print(moins6)
print(plus6)
输出:
['Maximilien', 'Brigitte', 'Jean-Pierre']
['Jean', 'Sonia', 'Sandra']
根据您的代码,您的 i
值将从 0 变为 13
而您的输入列表中只有 6 个元素
所以你的 i
值应该从 0 到 5
如果您不知道输入大小,可以使用 len()
来查找
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
i = 0
while i < len(liste1) : # here is your error
if len(liste1[i]) > 6:
moins6.append(liste1[i])
else:
plus6.append(liste1[i])
i +=1
print(liste1, moins6, plus6)
['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
['Maximilien', 'Brigitte', 'Jean-Pierre']
['Jean', 'Sonia', 'Sandra']
您可以遍历列表,找到每个元素的 len
,并将其追加到适当的列表中:
liste1 = ['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']
moins6 = []
plus6 = []
for elem in liste1:
if len(elem) < 6:
moins6.append(elem)
else:
plus6.append(elem)
print(plus6)
print(moins6)
输出:
['Maximilien', 'Brigitte', 'Jean-Pierre', 'Sandra']
['Jean', 'Sonia']