【发布时间】:2017-01-08 11:33:15
【问题描述】:
是否可以根据您的首选顺序或预先确定的选择对列表进行排序并执行某些操作?
所以我有一个包含定义的文件列表,如果我重新搜索字符串并返回匹配项,我只想打印字符串 + 最高定义
我开始探索下面的想法,但我似乎无法让它只打印最高的 - 目前它打印所有 3
#!/usr/bin/python3
import re
definitions = ['1080p', '720p', 'SD'] # order (highest to lowest)
some_files = ['movie_a_1080p.mp4', 'movie_b_720p.mp4','movie_c_SD.mp4']
for each in some_files:
for defs in definitions:
match = re.search(defs, each, re.M | re.I)
if match:
if match.group() == '1080p':
print('1080p', each)
break
else:
if match.group() == '720p':
print('720p', each)
break
else:
if match.group() == 'SD':
print('SD', each)
break
任何帮助都会很棒
【问题讨论】:
-
仅供参考:将
else: if:替换为elif: -
你希望得到什么输出? (我不知道你想做什么。)
-
您可以定义一个自定义排序函数,使用您喜欢的任何标准对项目列表进行排序。
-
Sorting How To。 max() 和 min() 也接受关键函数参数。
标签: python python-2.7 python-3.x