Ahs*_*san 5 python sorting list case-insensitive
嗨,我有字典列表..我想排序不区分大小写
members = Person.objects.filter(person=person_id)
members_list = list(members)
members_list.sort( key = operator.attrgetter( sort_by ), reverse = False )
Run Code Online (Sandbox Code Playgroud)
这里sort_by有我想要排序的属性名称.现在我怎么能用不区分大小写排序?
请帮忙..
members_list.sort( key = lambda member: getattr(member,sort_by).lower(), reverse = False )
Run Code Online (Sandbox Code Playgroud)
如果sort_by是一个变量,其中包含一个字符串,该字符串具有要用于排序的属性名称并且要使用operator.attrgetter(),则可以使用它将它获取的属性值转换为所有小写字符,以便在排序期间进行比较:
members_list.sort( key = lambda mbr: operator.attrgetter( sort_by )( mbr ).lower(),
reverse = False )
Run Code Online (Sandbox Code Playgroud)
尽管像下面这样的代码更容易阅读并且更高效:
get_key = operator.attrgetter( sort_by )
members_list.sort( key = lambda mbr: get_key( mbr ).lower(), reverse = False )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |