gpt4 book ai didi

python - 从列表中删除单个字符

转载 作者:行者123 更新时间:2023-12-03 23:53:04 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to remove items from a list while iterating?

(25 个回答)


7年前关闭。




我无法理解为什么我的代码无法工作。
我试图从列表中删除长度只有一个字符的单词:

line = ['word','a','b','c','d','e','f','g']
for words in line:
if len(words) == 1:
line.remove(words)

这段代码返回这个(它看起来删除了“每隔一个”单个字符):
>>> line
['word', 'b', 'd', 'f']

谁能解释为什么这不能正常工作以及如何解决?

最佳答案

做这个:

line = ['word','a','b','c','d','e','f','g']
line = [i for i in line if len(i) > 1]

您的代码的问题在于您在迭代时从列表中删除,这是不安全的。它将改变列表的长度:
line = ['word','a','b','c','d','e','f','g']
iterated = 0
removed = 0
for words in line:
iterated += 1
if len(words) == 1:
line.remove(words)
removed += 1

print line # ['word', 'b', 'd', 'f']
print iterated # 5
print removed # 4

关于python - 从列表中删除单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24410211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com