【发布时间】:2018-03-08 11:31:54
【问题描述】:
我正在尝试根据主列表对一长串标签进行排序,并且正在努力有效地实现这一点。如下面的示例所示,我想将长列表中的所有项目组合在一起,这些项目共享一个共同的字符串开头,然后以与“主列表”相同的顺序创建一个新列表。
使用 Python,我通常会尝试向量化和并行处理数组,但这似乎不适用于基于字符串的数组。
这是我使用嵌套循环的示例和解决方案:
fruits = ['apple', 'banana', 'orange'] # "master list"
labels = ['banana2', 'apple2', 'orange1', 'banana1', 'apple1', 'apple3'] # "long list"
new_list = []
for fruit in fruits:
for label in labels:
if fruit in label:
new_list.append(label)
print(new_list) 然后返回
['apple2', 'apple1', 'apple3', 'banana2', 'banana1', 'orange1']
这可以在没有嵌套循环的情况下完成吗?
为了获得额外的好处,我理想情况下也希望根据字符串中的最终数字对标签进行排序,例如给出结果:['apple1', 'apple2', 'apple3', 'banana1', 'banana2', 'orange1']
【问题讨论】:
标签: python string loops sorting