python 从具有前缀的列表中获取元素

a7qyws3x  于 2022-10-30  发布在  Python
关注(0)|答案(2)|浏览(185)

假设我有几个列表:

list = ["MacOS-1", "MacOS-2", "Windows-1", "Windows-2"]
maclist = []
windowslist = []

我如何从“list”中获取元素,并根据它们前面是否有“MacOS”或“Windows”将它们排序到“maclist”或“windowslist”中?
我在想:(我还没有测试过)

for element in list:
  if "MacOs" in element:
    maclist.append(element)
  elif "Windows" in element:
    windowslist.append(element)

提前感谢...

jk9hmnmh

jk9hmnmh1#

您可以在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")]
oxosxuxt

oxosxuxt2#

你可能想看看基数树,这是最有效的方法。网上也有很多解决方案。例如,如果列表很长,你必须一遍又一遍地做这件事,那么你可以对列表排序一次,然后在log(N)中对它做一个二元搜索,然后在结果的邻域中寻找。

相关问题