我有一个python字典
var = {'count': [1, 1, 1, 1, 1],
'path': ['/media/anurag/Work/search_script/masterfile.txt',
"/media/anurag/Work/search_script/Women's Running Shoes/Women's Running Shoes_2.csv",
"/media/anurag/Work/search_script/Men's Running Shoes/masterfile.txt",
"/media/anurag/Work/search_script/Men's Running Shoes/Men's Running Shoes_1.csv",
"/media/anurag/Work/search_script/Men's Running Shoes/output.txt"],
'modified': [1502974843.8277025, 1501594022.454686, 1501945289.3378062,
1501593976.6210368, 1501945143.4162745],
'row': [9541, 8723, 1664, 506, 2200]}
现在我必须根据 modified 作为键进行排序。不扰乱秩序。 为此,我使用了 pandas:
我的 Pandas 解决方案是
In [1]: import pandas as pd
In [2]: var = {'count': [1, 1, 1, 1, 1], 'path': ['/media/anurag/Work/search_script/masterfile.txt', "/media/anurag/Work/search_script/Women's Running Shoes/Women's Running Shoes_2.csv", "/media/anurag/Work/search_script/Men's Running Shoes/masterfile.txt", "/media/anurag/Work/search_script/Men's Running Shoes/Men's Running Shoes_1.csv", "/media/anurag/Work/search_script/Men's Running Shoes/output.txt"], 'modified': [1502974843.8277025, 1501594022.454686, 1501945289.3378062, 1501593976.6210368, 1501945143.4162745], 'row': [9541, 8723, 1664, 506, 2200]}
In [3]: search_result = pd.DataFrame.from_dict(var)
In [4]: search_result.sort_values('modified', inplace=True, ascending=False)
In [5]: search_result
Out[5]:
count modified path \
0 1 1.502975e+09 /media/anurag/Work/search_script/masterfile.txt
2 1 1.501945e+09 /media/anurag/Work/search_script/Men's Running...
4 1 1.501945e+09 /media/anurag/Work/search_script/Men's Running...
1 1 1.501594e+09 /media/anurag/Work/search_script/Women's Runni...
3 1 1.501594e+09 /media/anurag/Work/search_script/Men's Running...
row
0 9541
2 1664
4 2200
1 8723
3 506
我可以不用 pandas 做这个吗?
请您参考如下方法:
您可以将对象存储为字典映射,然后使用适当的排序标准(由 key 指定)对此类对象的列表进行排序。像下面这样的东西-
var = {'count': [1, 1, 1, 1, 1], 'path': ['/media/anurag/Work/search_script/masterfile.txt', "/media/anurag/Work/search_script/Women's Running Shoes/Women's Running Shoes_2.csv", "/media/anurag/Work/search_script/Men's Running Shoes/masterfile.txt", "/media/anurag/Work/search_script/Men's Running Shoes/Men's Running Shoes_1.csv", "/media/anurag/Work/search_script/Men's Running Shoes/output.txt"], 'modified': [1502974843.8277025, 1501594022.454686, 1501945289.3378062, 1501593976.6210368, 1501945143.4162745], 'row': [9541, 8723, 1664, 506, 2200]}
objects = [{field: value[i] for field,value in var.items()}
for i in range(len(var['count']))]
objects.sort(key=itemgetter('modified')) # you may add reverse=True as per need
