首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按字母和数字排序

按字母和数字排序
EN

Stack Overflow用户
提问于 2015-12-03 19:26:14
回答 2查看 1.2K关注 0票数 0
代码语言:javascript
复制
f = open(document) #this will open the selected class data
swag = [f.readline(),f.readline(),f.readline(),f.readline(),f.readline(),f.readline()] #need to make go on for amount of line

viewfile = input("Do you wish to view the results?")#This will determine whether or not the user wishes to view the results
if viewfile == 'yes': #If the users input equals yes, the program will continue
order = input("What order do you wish to view to answers? (Alphabetical)") #This will determine whether or not to order the results in alphabetical order
if order == 'Alphabetical' or 'alphabetical':
    print(sorted(swag))
if order == 'Top' or 'top':
    print(sorted(swag, key=int))

该文档读作

代码语言:javascript
复制
John : 1
Ben : 2
Josh : 3

我该如何将它们按数字顺序进行排序,例如降序?

EN

回答 2

Stack Overflow用户

发布于 2015-12-03 19:34:17

你必须按数值排序,然后无论你得到什么结果,只要颠倒它就可以颠倒顺序。

这里的关键是按正确的事情进行排序,您需要通过定义一个函数来对key参数进行排序。

这里的函数是一个lambda,它只返回要排序的字符串的数字部分;它将以升序返回它。

要颠倒顺序,只需颠倒列表即可。

代码语言:javascript
复制
with open(document) as d:
   swag = [line.strip() for line in d if line.strip()]

by_number = sorted(swag, key=lambda x: int(x.split(':')[1]))
descending = by_number[::-1]
票数 1
EN

Stack Overflow用户

发布于 2015-12-03 19:38:30

您需要在:处拆分每一行。删除名称中的空格,并将数字转换为整数(如果有,则转换为浮点数)。跳过空行。

代码语言:javascript
复制
with open(document) as fobj:
    swag = []
    for line in fobj:
        if not line.strip():
            continue
        name, number_string = line.split(':')
        swag.append((name.strip(), int(number_string)))

排序是直接的:

代码语言:javascript
复制
by_name = sorted(swag)
by_number = sorted(swag, key=lambda x: x[1])
by_number_descending = sorted(swag, key=lambda x: x[1], reverse=True)

变化

使用itemgetter

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

by_number_descending = sorted(swag, key=itemgetter(1), reverse=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34064807

复制
相关文章

相似问题

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