所以我有一个.txt
文件,如下所示:
我必须阅读文件以便输出如下列表:
^{pr2}$我使用的代码是:
def PrintList(table):
for line in table:
print(str(line[0]) + " kms, $" + str(line[1]))
file = open(input("Enter file name: "))
table = []
for line in file:
line = line.rstrip().split(",")
line[0] = int(line[0])
line[1] = float(line[1])
table.append(line)
PrintList(table)
file.close()
现在我想按价格的递增顺序对清单进行排序,以获得:
47 kms, $170.14
170 kms, $190.01
131 kms, $263.07
53 kms, $401.53
180 kms, $412.69
如何在Python中实现这一点?我试过用Selection Sort
来做这件事,但似乎不起作用。在
更新:感谢您到目前为止的输入。但是,我已经尝试过sort函数,但是我想知道如何使用Selection Sort
来实现这个功能。在
更新:我无法发布我所使用的Selection Sort
代码,尽管如此,下面给出的是一个代码示例(我曾用它对距离的随机列表进行排序),我不得不修改该代码以按价格的递增顺序对上述列表进行排序。希望足够了。在
def selectionSort(distance):
n = len(distance)
for i in range(n):
minPlace = searchMin(distance)
swap(distance, i, minPlace+i)
def searchMin(distance):
minPlace = 0
n = len(distance)
for i in range(1, n):
if distance[i] < distance[minPlace]:
minPlace = i
return minPlace
def swap(distance, i, j):
temp = distance[i]
distance[i] = distance[j]
distance[j] = temp
如果有更容易实现的方法,请告诉我。提前谢谢。干杯。
Python列表已经提供了一个^{} 方法。您可以简单地调用它,指定一个
key
参数来确定如何排序。在请注意,我对您的程序做了一些额外的更改,即根据PEP8重命名PrintList,并使用^{} statement 使文件自动关闭。在
如果坚持使用选择排序(这将比Python的默认排序更糟糕),请在实现^{} 接口的helper函数中实现它。在
在for循环之后:
Sorted_table现在包含按第2列排序的表格数据。 然后可以将
^{pr2}$sorted_table
传递给PrintList函数。避免lambda的另一种选择:有关python排序的更多信息,请参见:https://wiki.python.org/moin/HowTo/Sorting
是否必须执行选择排序?我会选择^{} :
在哪里
^{pr2}$指示
sorted
使用索引为1
(price)的元素的值来比较对象。在相关问题 更多 >
编程相关推荐