排序函数sort()在特定情况下无法按预期工作

时间:2019-08-30 09:23:02

标签: python-3.x sorting

我对Python很陌生,并且正在解决一些基本问题,以学习进入Python的方法。在此过程中,我尝试使用placeholder函数对列表进行升序排序。

即使不应该使用相同数字的递增数字也被排序在一起。例如,如果数字sort()666等之间不存在数字,则不应将它们在一起。

我尝试使用不同种类的输入,但是所有内容都按如下所示分组在一起:

666

以下是为此目的编写的代码:

(base) C:\Data\Personal Data\Python>python test.py
10

1
11
111
1111
2
22
222
2222
3
33
['1', '11', '111', '1111', '2', '22', '222', '2222', '3', '33']

尽管我还没有看到这样的错误消息,但是输出绝对是我期望的。我在这里做错什么了吗?

2 个答案:

答案 0 :(得分:1)

问题是您要对字符串而不是数字进行排序,而解决方案在于您的代码中,只需在读取所有数字时使用int即可,就像读取数字时使用的方式一样迭代次数:

for i in range(t):
    u = int(input())
    n.append(u)

答案 1 :(得分:0)

即使您以map的字符串格式输入数字,也可以使用lambdan.sort(key=lambda x: int(x)) 函数对它们进行排序。 只需在sort函数中使用lambda函数即可。

public async Task Instagram(string username, int timeout = 10)
{
    int question = QuestionUtils.GenerateQuestion();
    await DiscordUtils.QuestionAsync(_interactive, _context, question, embed, timeout);

    if (await QuestionUtils.QuestionResponse(question))
        Console.WriteLine("yes");
    else
        Console.WriteLine("no");
}