下面的代码应该收集来自用户的数字输入,将其放入一个列表中,并对它们进行排序:
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()
这段代码正在打印“无”,而不是打印我的排序列表。我少了哪一步?
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)
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 是否有