我正在读取一个CSV文件,其中包含诸如此类的信息:
ProcessID, Arrival Time, Burst Time
0, 1, 3
1, 0, 5
2, 9, 8
3, 10, 6
我正在尝试使其看起来更像这样,以便我可以实现FCFS算法
ProcessID, Arrival Time, Burst Time
1, 0, 5
0, 1, 3
2, 9, 8
3, 10, 6
我尝试查看是否可以对到达时间进行排序:
n = len(processes) #amount of processes
for i in range(n):
print(sorted(processes[i][1]))
但是,在打印排序的第二列时,它返回10作为['0','1']`吗?例如
['1']
['0']
['9']
['0', '1']
如果有人可以将我指向正确的方向,那就太好了。
答案 0 :(得分:0)
您的数据中似乎有随机逗号。假设这些是固定的,那么您正在对单个字符串调用sorted
,从而对其中的字符进行排序。
处理以下数据:
0 ,1 ,3
1 ,0 ,5
2 ,9 ,8
3 ,10 ,6
这段代码将为您提供所需的内容:
from operator import itemgetter
data = [[int(element) for element in row.split(',')] for row in string.replace(' ', '').split('\n')]
sorted(data, key=itemgetter(1)
输出:
[[1, 0, 5],
[0, 1, 3],
[2, 9, 8],
[3, 10, 6]]
也就是说,最好使用pandas
获得此结果,因为那样的话,您可以做类似pd.read_csv('data.csv').sort_values('Arrival Time')
的事情。