首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环的Python排序

使用for循环的Python排序
EN

Stack Overflow用户
提问于 2018-03-14 05:53:00
回答 3查看 89关注 0票数 2

我编写了一个for循环,用于在python空闲中显示名称,如下所示。

代码语言:javascript
复制
1.SRA-D12-TY2-2017WW22.4.129
2.SRA-D12-TY2-2017WW27.5.168
3.SRA-D12-TY2-2017WW16.5.92
4.SRA-D12-TY2-2017WW20.2.115
5.SRA-D12-TY2-2017WW25.2.149
6.SRA-D12-TY2-2017WW29.5.188
7.SRA-D12-TY2-2017WW36.1.234
8.SRA-D12-TY2-2017WW31.3.201

我为显示上述项目而编写的代码是

代码语言:javascript
复制
for i in data.get('files'):
    new_data = i.get('uri').strip('/')
    platform_display = "{}.{}".format(count,new_data)
    platform_dict[count] = new_data 
    count += 1
    print platform_display

我想把它显示为

代码语言:javascript
复制
1.SRA-D12-TY2-2017WW36.1.234
2.SRA-D12-TY2-2017WW31.3.201
3.SRA-D12-TY2-2017WW29.5.188 

等按降序排列

请告诉我如何分类

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-14 06:06:27

代码语言:javascript
复制
l1=[
'SRA-D12-TY2-2017WW22.4.129',
'SRA-D12-TY2-2017WW27.5.168',
'SRA-D12-TY2-2017WW16.5.92',
'SRA-D12-TY2-2017WW20.2.115',
'SRA-D12-TY2-2017WW25.2.149',
'SRA-D12-TY2-2017WW29.5.188',
'SRA-D12-TY2-2017WW36.1.234',
'SRA-D12-TY2-2017WW31.3.201'
]
l1=sorted(l1, key=lambda x: x.split("WW")[-1],reverse=True)
for i in l1:
  print(i)

输出:

代码语言:javascript
复制
SRA-D12-TY2-2017WW36.1.234
SRA-D12-TY2-2017WW31.3.201
SRA-D12-TY2-2017WW29.5.188
SRA-D12-TY2-2017WW27.5.168
SRA-D12-TY2-2017WW25.2.149
SRA-D12-TY2-2017WW22.4.129
SRA-D12-TY2-2017WW20.2.115
SRA-D12-TY2-2017WW16.5.92
票数 4
EN

Stack Overflow用户

发布于 2018-03-14 06:03:42

只需使用reversed sort

让我们把清单上所有的项目都叫做l

代码语言:javascript
复制
l=['SRA-D12-TY2-2017WW22.4.129',
 'SRA-D12-TY2-2017WW27.5.168',
 'SRA-D12-TY2-2017WW16.5.92',
 'SRA-D12-TY2-2017WW20.2.115',
 'SRA-D12-TY2-2017WW25.2.149',
 'SRA-D12-TY2-2017WW29.5.188',
 'SRA-D12-TY2-2017WW36.1.234',
 'SRA-D12-TY2-2017WW31.3.201']

sorted(l, reverse=True)
票数 0
EN

Stack Overflow用户

发布于 2018-03-14 06:13:23

试试这个:

代码语言:javascript
复制
from operator import itemgetter

platform_list = []
for i in data.get('files'):
    new_data = i.get('uri').strip('/')
    platform_list.append([new_data.split("WW")[-1],new_data])

first_item = itemgetter(0)
new_list = sorted(platform_list, key = first_item)
counter = 0
for i in new_list:
    counter += 1
    print "%d.%s" %(counter,i[1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49270573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档