2015-05-24 13 views
5

मैं इस तरह सूची है:काउंटर सूची अजगर 2.7

satuan = Counter(pasang) 

तो मैं मिलता है:

Counter({5: 10, 6: 7, 0: 5, 1: 5, 7: 5, 10: 4, 11: 4, 15: 4,...,14: 1, 21: 1}) 

मैं कुंजी प्राप्त करना चाहते हैं

Pasang = [0, 4, 4, 5, 1, 7, 6, 7, 5, 7, 4, 9, 0, 10, 1, 10,...., 23, 9, 23, 7, 23] 

मुझे लगता है कि सूची से आइटम गिनती काउंटर से, इसलिए मैं यह करता हूं:

satu = satuan.keys() 

और मैं इस तरह क्रमबद्ध सूची प्राप्त:

[0, 1, 2, 4, 5,...,21, 22, 23] 

लेकिन मैं एक इस तरह निर्गम (नहीं क्रमबद्ध) की जरूरत है: मेरा बुरा अंग्रेजी के लिए

[5, 6, 0, 1,...,14, 21] 

क्षमा करें।

+6

आपका क्या मतलब है * "पृथक नहीं किया" होने के लिए *? ऐसा लगता है कि ** ** ** इसे सॉर्ट करना चाहते हैं, लेकिन गिनती के क्रम में, किस मामले में ['Counter.most_common'] (https://docs.python.org/2/library/collections.html#collections .Counter.most_common)। – jonrsharpe

+0

मुझे लगता है कि उनका मतलब है "संख्यात्मक रूप से क्रमबद्ध नहीं है, लेकिन उसी क्रम में यह 'काउंटर' ऑब्जेक्ट में दिखाया गया है। – Barmar

उत्तर

4

आप शायद जरूरत है:

[key for key, freq in c.most_common()] 

जहां cCounter उदाहरण है।

most_common आवृत्ति के घटते क्रम में, चाबियों और आवृत्तियों के जोड़े वापस कर देगा। फिर आप एक समझ का उपयोग करके मुख्य भाग निकालें।

+0

तो क्यों 'काउंटर.की' एक क्रमबद्ध परिणाम देता है? – Kasramvd

+0

@ कासर कुछ परीक्षणों से ऐसा लगता है .... – JuniorCompressor

+2

@ कासरा क्योंकि चाबियाँ पूर्णांक हैं, जो हैश अपने मूल्यों के लिए – jonrsharpe

0

यदि आप ऑर्डर को बनाए रखना चाहते हैं तो Counter ऑब्जेक्ट पर एक नज़र डालें, जिसे आपने अभी बनाया है, इसमें तत्व घटते क्रम में आवृत्ति के लिए wrt को क्रमबद्ध करते हैं और आप आवृत्ति और सेटिंग पर चाबियाँ सॉर्ट करके समान व्यवहार भी प्राप्त कर सकते हैं reverse झंडा True

import collections 
Pasang = [0, 4, 4, 5, 1, 7, 6, 7, 5, 7, 4, 9, 0, 10, 1, 10, 23, 9, 23, 7, 23] 

a = collections.Counter(Pasang) 

keys = sorted(a.keys(), key = lambda x:a[x], reverse = True) 
print a 
print keys 
>>> Counter({7: 4, 4: 3, 23: 3, 0: 2, 1: 2, 5: 2, 9: 2, 10: 2, 6: 1}) 
>>> [7, 4, 23, 0, 1, 5, 9, 10, 6] 
संबंधित मुद्दे