我有以下列表:
all=[
"jaeger.jaeger-span.jaeger-ell.spam 385062 1583408544",
"jaeger.jaeger-span.jaeger-ell.FindTraces 385062 1583408544",
"jaeger.jaeger-span.jaeger-on.GetOperations 5177 1583376432",
"jaeger.jaeger-span.jaeger-http.GetServices 5528 1583376528",
"jaeger.jaeger-span.jaeger-query.FindTraces 70681 1583386032",
"jaeger.jaeger-span.jaeger-as.GetOperations 5177 1583376432"
]
由findtraces字段排序?我希望订购如下:
for i in all:
print(i)
console:
jaeger.jaeger-span.jaeger-ell.FindTraces 385062 1583408544
jaeger.jaeger-span.jaeger-query.FindTraces 70681 1583386032
jaeger.jaeger-span.jaeger-on.GetOperations 5177 1583376432
jaeger.jaeger-span.jaeger-as.GetOperations 5177 1583376432
jaeger.jaeger-span.jaeger-http.GetServices 5528 1583376528
jaeger.jaeger-span.jaeger-ell.spam 385062 1583408544
不确定是否有直接的方法。但是,您可以使用此小代码段来实现您的目标:
all=[
"jaeger.jaeger-span.jaeger-ell.spam 385062 1583408544",
"jaeger.jaeger-span.jaeger-ell.FindTraces 385062 1583408544",
"jaeger.jaeger-span.jaeger-query.FindTraces 70681 1583386032",
"jaeger.jaeger-span.jaeger-on.GetOperations 5177 1583376432",
"jaeger.jaeger-span.jaeger-http.GetServices 5528 1583376528"
]
dic = {}
for str in all:
key = str.split(" ")[0].split(".")[-1]
dic[key]=str
sorted_keys = list(dic.keys())
sorted_keys.sort()
sorted_list = []
for key in sorted_keys:
sorted_list.append(dic[key])
print(sorted_list)
您可以尝试,
In [66]: x = [
...: "jaeger.jaeger-span.jaeger-ell.spam 385062 1583408544",
...: "jaeger.jaeger-span.jaeger-ell.FindTraces 385062 1583408544",
...: "jaeger.jaeger-span.jaeger-on.GetOperations 5177 1583376432",
...: "jaeger.jaeger-span.jaeger-http.GetServices 5528 1583376528",
...: "jaeger.jaeger-span.jaeger-query.FindTraces 70681 1583386032",
...: "jaeger.jaeger-span.jaeger-as.GetOperations 5177 1583376432"
...: ]
In [67]: l = list(map(lambda a: a.split('.'), x))
In [68]: l
Out[68]:
[['jaeger', 'jaeger-span', 'jaeger-ell', 'spam 385062 1583408544'],
['jaeger', 'jaeger-span', 'jaeger-ell', 'FindTraces 385062 1583408544'],
['jaeger', 'jaeger-span', 'jaeger-on', 'GetOperations 5177 1583376432'],
['jaeger', 'jaeger-span', 'jaeger-http', 'GetServices 5528 1583376528'],
['jaeger', 'jaeger-span', 'jaeger-query', 'FindTraces 70681 1583386032'],
['jaeger', 'jaeger-span', 'jaeger-as', 'GetOperations 5177 1583376432']]
In [69]: l.sort(key=lambda x: x[3])
In [70]: l
Out[70]:
[['jaeger', 'jaeger-span', 'jaeger-ell', 'FindTraces 385062 1583408544'],
['jaeger', 'jaeger-span', 'jaeger-query', 'FindTraces 70681 1583386032'],
['jaeger', 'jaeger-span', 'jaeger-on', 'GetOperations 5177 1583376432'],
['jaeger', 'jaeger-span', 'jaeger-as', 'GetOperations 5177 1583376432'],
['jaeger', 'jaeger-span', 'jaeger-http', 'GetServices 5528 1583376528'],
['jaeger', 'jaeger-span', 'jaeger-ell', 'spam 385062 1583408544']]
In [71]:
使用all.sort(reverse=False)
对列表项进行排序