Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据有效负载值对端口号进行排序_Python_Sorting_Dictionary - Fatal编程技术网

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))