Python 根据有效负载值对端口号进行排序
这里我得到了所有端口及其相应负载(总和)的输出,现在我的问题是如何根据负载对端口号进行排序,因为在端口中,最大负载应排在第一位???根据值而不是键进行排序:Python 根据有效负载值对端口号进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,这里我得到了所有端口及其相应负载(总和)的输出,现在我的问题是如何根据负载对端口号进行排序,因为在端口中,最大负载应排在第一位???根据值而不是键进行排序: from collections import defaultdict INPUT = "/Users/amanshah/Desktop/hsn/a.tcp" payloads = defaultdict(int) with open(INPUT) as inf: for line in inf: values
from collections import defaultdict
INPUT = "/Users/amanshah/Desktop/hsn/a.tcp"
payloads = defaultdict(int)
with open(INPUT) as inf:
for line in inf:
values = line.split()
port = int(values[1])
payload = int(values[5])
payloads[port] += payload
for port in sorted(payloads):
print("{}: {}".format(port, payloads[port]))
text.close()
由于您在这里所做的只是保持计数,因此您也可以使用它,然后使用它的方法:
for k, v in sorted(payloads.iteritems(), key=lambda x:x[1], reverse=True):
print("{}: {}".format(k, v))
from collections import Counter
payloads = Counter()
...
for k, v in payloads.most_common():
print("{}: {}".format(k, v))