我有一个字符串列表。我想获取列表中以字符“&”开头的所有项目,并将它们存储在不同的列表中。我尝试循环每个项目,发现它很慢,尤其是当列表的长度非常大时。还有其他方法吗?
这就是我所做的。
myList=['& apple','^ banana','& pineapple']
newList=[]
for v in myList:
if v.startswith('&'):
newList.append(v)
Run Code Online (Sandbox Code Playgroud)
谢谢阅读 ...
有一种更短的方法,但不一定更快:列表理解。
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在该循环中进行构建。