Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表中删除与条件匹配的第一个匹配项_Python - Fatal编程技术网

Python 从列表中删除与条件匹配的第一个匹配项

Python 从列表中删除与条件匹配的第一个匹配项,python,Python,假设我有一个字符串列表: first item second item # first commented item third item # second commented item 如何从列表中删除以#开头的第一项 预期结果: first item second item third item # second commented item 如果列表中有空字符串,则此操作将失败。只需使用items[i]。改为使用(“#”)启动。在枚举(items)和items.pop(i)中为i、e使

假设我有一个字符串列表:

first item
second item
# first commented item
third item
# second commented item
如何从列表中删除以
#
开头的第一项

预期结果:

first item
second item
third item
# second commented item

如果列表中有空字符串,则此操作将失败。只需使用
items[i]。改为使用(“#”)
启动。在枚举(items)和
items.pop(i)中为i、e使用
将使其效率略高。@Sven:timeit值:项目中e的
为1.2秒,枚举的
为1.7秒。@jackson:优化是否重要?我甚至没有这样做,我更注重可读性:-)在一个长长的列表中尝试,其中第一项以
#
开头接近结尾。这是性能影响的唯一情况。您正在修改正在迭代的列表。在这种情况下,它是好的,因为你立即打破,但这是一个非常坏的主意,一般来说。
items = ["First", "Second", "# First", "Third", "# Second"]
for i in xrange(len(items)):
    if items[i][0] == '#':
        items.pop(i)
        break
print items
>>> items = ["First", "Second", "# First", "Third", "# Second"]
>>> for e in items:
...     if e.startswith('#'):
...             items.remove(e)
...             break
... 
>>> items
['First', 'Second', 'Third', '# Second']