在Python中对整数列表排序

v1uwarro  于 2023-08-02  发布在  Python
关注(0)|答案(3)|浏览(144)

我是一个初学者程序员,我想做一个练习。
我想对一个整数列表进行排序,但每次运行代码时,列表都没有排序。我已经用sorted()或.sort()尝试了几种不同的方法,但似乎都没有帮助。

def main():

    _list1_ = []
    _list2_ = []

    print("Enter random numbers and enter Q to quit: ")
    userInput1 = input("")
    while userInput1.upper() != "Q":
        _list1_.append(int(userInput1))
        userInput1 = input("")

    print("Enter random numbers and enter Q to quit:")
    userInput2 = input("")
    while userInput2.upper() != "Q":
        _list2_.append(int(userInput2))
        userInput2 = input("")

    sorted(_list1_)
    sorted(_list2_)

    print(_list1_)

main()

字符串

oxcyiej7

oxcyiej71#

sorted()不会对列表进行排序。它返回排序后的列表,因此您需要将2个sorted()调用更改为如下所示:

_list1_ = sorted(_list1_)
_list2_ = sorted(_list2_)

字符串
阅读文档以了解函数的工作方式总是一个好主意。以下是排序的文档https://docs.python.org/2/library/functions.html#sorted

nuypyhwy

nuypyhwy2#

sorted返回已排序的列表,而sort就地执行排序。
因此,您可以执行以下操作:

_list1_ = sorted(_list_)

字符串
或:

_list1_.sort()


如果你使用sort(我的首选方法),你的代码看起来像这样:

def main():

    _list1_ = []
    _list2_ = []

    print("Enter random numbers and enter Q to quit: ")
    userInput1 = input("")
    while userInput1.upper() != "Q":
        _list1_.append(int(userInput1))
        userInput1 = input("")

    print("Enter random numbers and enter Q to quit:")
    userInput2 = input("")
    while userInput2.upper() != "Q":
        _list2_.append(int(userInput2))
        userInput2 = input("")

    _list1_.sort()
    _list2_.sort()

    print(_list1_)

main()

xmjla07d

xmjla07d3#

sorted(_list1_)

字符串
在对list1排序后返回一个列表,它不对list1排序。所以写

print(sorted(_list1_))


或者将排序后的list1赋值给list1,如

_list1_ = sorted(_list1_)

相关问题