除了循环每个项目之外,是否有更好的方法来查找以某个字符开头的项目?

hea*_*AYA 2 python python-2.7

我有一个字符串列表。我想获取列表中以字符“&”开头的所有项目,并将它们存储在不同的列表中。我尝试循环每个项目,发现它很慢,尤其是当列表的长度非常大时。还有其他方法吗?

这就是我所做的。

myList=['& apple','^ banana','& pineapple']
newList=[]

for v in myList:
    if v.startswith('&'):
        newList.append(v)
Run Code Online (Sandbox Code Playgroud)

谢谢阅读 ...

cht*_*mon 5

有一种更短的方法,但不一定更快:列表理解。

myList = ['& apple','^ banana','& pineapple']
newList = [v for v in myList if v.startswith('&')]
Run Code Online (Sandbox Code Playgroud)

如果您正在进行大量数据处理,pandas 可能会更快:

import pandas
df = pandas.DataFrame({'myList': myList})
newList = df[df.myList.str.startswith('&')]
Run Code Online (Sandbox Code Playgroud)

最后,如果这太慢,那么在构建第一个列表时进行分类可能会很有用。如果它非常大,您可能会从文件中读取它或进行计算,因此您可以newList在该循环中进行构建。