【发布时间】:2016-08-31 13:03:56
【问题描述】:
所以我有一个.txt 文件如下:
131,263.07
47,170.14
170,190.01
180,412.69
53,401.53
我必须读取文件才能输出如下列表:
131 kms, $263.07
47 kms, $170.14
170 kms, $190.01
180 kms, $412.69
53 kms, $401.53
我使用的代码是:
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 执行此操作,但它似乎不起作用。
更新:感谢您迄今为止的意见。不过,我已经尝试过排序功能,但我想弄清楚如何使用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 为你排序”但是你需要帮助你的排序算法不起作用吗?
-
你能展示你目前的代码吗?什么不工作。
-
^ 您尝试的选择排序的代码。
标签: python python-3.x selection-sort