当前位置: 首页 > 知识库问答 >
问题:

列表未在Python中打印[重复]

伍捷
2023-03-14

下面的代码应该收集来自用户的数字输入,将其放入一个列表中,并对它们进行排序:

def build_list():
    """Builds a list by continually collecting input from the user until 'done' is provided."""

    raw_list = []

    while True:

        item = input("Enter a numeric value: ")

        if item.lower() == "done":
            break
        try:
            item = int(item)
        except ValueError:
            print("That wasn't a valid number. Try again or enter 'done' to stop making the list.")
        else:
            raw_list.append(item)

    return raw_list


def sort_list(unsorted_list):
    sorted_list = unsorted_list.sort()
    return sorted_list


def main():
    my_list = build_list()
    my_list = sort_list(my_list)
    print(my_list)


if __name__ == '__main__':
    main()

这段代码正在打印“无”,而不是打印我的排序列表。我少了哪一步?

共有2个答案

太叔望
2023-03-14

sort对列表进行就地排序并返回none。调用sort而不返回它:

def main():
    my_list = build_list()
    my_list.sort() # Here
    print(my_list)

或使用sorted:

def main():
    my_list = build_list()
    my_list = sorted(my_list) # Here
    print(my_list)
漆雕皓轩
2023-03-14

sort()函数(以及reverse()函数)“原地”工作,并始终返回none

你应该写:

def sort_list(unsorted_list):
    sorted_list = list(unsorted_list)  # local copy if needed
    sorted_list.sort()
    return sorted_list

还可以使用sorted()函数

def sort_list(unsorted_list):
    sorted_list = sorted(unsorted_list)
    return sorted_list

请参见:排序如何

 类似资料:
  • 问题内容: 考虑使用此Python代码来打印逗号分隔值列表 如果列表中的最后一个元素是不显示逗号的首选打印方法。 前 问题答案:

  • 问题内容: 我有一个清单清单: 我想要以下格式的输出: 我已经按照以下方式尝试过,但是输出的方式不是理想的: 输出: 在更改打印调用以代替使用时: 输出: 有任何想法吗? 问题答案: 遍历原始列表中的每个子列表,并在打印调用中使用以下命令将其解压缩: 默认情况下,分隔设置为,因此无需显式提供分隔。打印: 在您的方法中,您要遍历每个子列表中的每个元素,并分别进行打印。通过使用您在打印调用中 解压缩

  • 问题内容: 是否有一种简单的内置方法将2D Python列表打印为2D矩阵? 所以这: 会变成像 我找到了pprint模块,但是它似乎并没有实现我想要的功能。 问题答案: 为了使事情变得有趣,让我们尝试使用更大的矩阵: 输出: UPD:对于多行单元格,应如下所示: 然后应用上面的代码。 另请参见http://pypi.python.org/pypi/texttable

  • 问题内容: 我是Python的新手,现在正努力为打印输出很好地格式化数据。 我有一个用于两个标题的列表,以及一个应该作为表内容的矩阵。像这样: 请注意,标题名称不一定是相同的长度。数据条目都是整数。 现在,我想以表格格式表示此内容,如下所示: 我有一个预感,为此必须有一个数据结构,但是我找不到它。我尝试使用字典并格式化打印,我尝试了使用缩进的循环,并且尝试将其打印为字符串。 我确信必须有一种非常简

  • 考虑一个列表l=[1,2,3,4,5]。 如果我们想要解压列表并打印,我们使用*运算符来解压 输出: 1 2 3 4 5 这是在单个简单列表的情况下。 如果我有嵌套列表,并希望解压所有的子列表,如上面☝。 考虑一个子列表sl=[[[1,2,3],[4,5,6],[7,8,9]] 如果我把**放在打印表格中,它会抛出一条错误消息。 它不起作用 我希望输出为 1 2 3 4 5 6 7 8 9 是否有