假设我有几个列表:
list = ["MacOS-1", "MacOS-2", "Windows-1", "Windows-2"]
maclist = []
windowslist = []
如何从列表中获取元素?并将它们分类到"maclist"中;或";windowslist"根据他们是否有"macos";或";Windows"在他们面前?
我在想:(我还没有测试过这个)
for element in list:
if "MacOs" in element:
maclist.append(element)
elif "Windows" in element:
windowslist.append(element)
Thanks in advance…
您可以在Python中使用startswith
函数。
for element in list:
if element.startswith("MacOS"):
maclist.append(element)
elif element.startswith("Windows"):
windowslist.append(element)
在您的代码中,您不仅检查前缀,还检查任何索引范围内的所有子字符串。
或者,您可以使用下面的实现:
macos_list = [item for item in item_list if item.startswith("MacOS")]
windows_list = [item for item in item_list if item.startswith("Windows")]
你可能想看看基数树,这是最有效的方法。网上也有很多解决方案。例如,如果列表很长,你必须一遍又一遍地这样做,那么你可以对列表进行一次排序,然后对它进行log(N)的二叉查找,然后查看结果的邻域。