【发布时间】:2022-01-13 01:03:08
【问题描述】:
如果字符串的长度大于 5,我会尝试从该字符串列表中删除任何字符串。我不知道为什么它只删除似乎是随机字符串的内容。请帮忙。代码的子列表部分只是将列表列表更改为普通的字符串列表。
list2 = [['name'],['number'],['continue'],['stop'],['signify'],['tester'],['racer'],['stopping']]
li = [item for sublist in list2 for item in sublist]
var=0
for words in li:
if len(li[var])>5:
li.pop()
var+=1
print(li)
输出为:['name', 'number', 'continue', 'stop', 'signify']
【问题讨论】:
-
为什么每个字符串都包含在子列表中?
-
结果是随机的,因为您在迭代列表的同时从列表中删除内容。不要那样做。
-
请检查代码,因为它会引发 IndentationError。
-
记住 li.pop() 总是删除列表的最后一个值,除非你指定了位置。
标签: python string list loops nested-lists