【问题标题】:How to sort a list of names based on substring?如何根据子字符串对名称列表进行排序?
【发布时间】:2021-11-18 12:27:02
【问题描述】:

假设我有一个文件包含:

file1-01.json
file2-01.json
file3-01.json
file1-932.wav
file2-931.wav
file3-444.wav
file1-something.mp3
file2-something.mp3
file3-something.mp3

我怎样才能把它变成:

file1-01.json
file1-932.wav
file1-something.mp3
file2-01.json
file2-931.wav
etc...

代码:

final_list = []

for i in line:
    basename = i.split(-)[0]
    group = [s for s in line if basename in s]
    final_list.append(group)

在处理大文件时,这种方法似乎有点笨拙。还有其他有效的方法吗?

【问题讨论】:

标签: python python-3.x sorting


【解决方案1】:

由于您拥有的子字符串是第一个,因此只需使用 sorted 即可:

print(sorted(my_list))

返回:

['file1-01.json',
 'file1-932.wav',
 'file1-something.mp3',
 'file2-01.json',
 'file2-931.wav',
 'file2-something.mp3',
 'file3-01.json',
 'file3-444.wav',
 'file3-something.mp3']

【讨论】:

    【解决方案2】:
    sorted_list = sorted(line, key=lambda x: x.split('-')[0])
    

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 2012-03-26
      • 2021-12-20
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多