from collections import Counter
def myFunction(myDict):
myMax = 0 # Keep track of the max frequence
myResult = [] # A list for return
for key in myDict:
print('The key is', key, ', The count is', myDict[key])
print('My max is:', myMax)
# Finding out the max frequence
if myDict[key] >= myMax:
if myDict[key] == myMax:
myMax = myDict[key]
myResult.append(key)
# Case when it is greater than, we will delete and append
else:
myMax = myDict[key]
del myResult[:]
myResult.append(key)
return myResult
foo = ['1', '1', '5', '2', '1', '6', '7', '10', '2', '2']
myCount = Counter(foo)
print(myCount)
print(myFunction(myCount))
आउटपुट:
The list: ['1', '1', '5', '2', '1', '6', '7', '10', '2', '2']
Counter({'1': 3, '2': 3, '10': 1, '5': 1, '7': 1, '6': 1})
The key is 10 , The count is 1
My max is: 0
The key is 1 , The count is 3
My max is: 1
The key is 2 , The count is 3
My max is: 3
The key is 5 , The count is 1
My max is: 3
The key is 7 , The count is 1
My max is: 3
The key is 6 , The count is 1
My max is: 3
['1', '2']
मैं इस साधारण प्रोग्राम लिखा था, मैं यह भी काम कर सकते हैं लगता है। जब तक मैं कोई खोज नहीं करता तब तक मुझे most_common()
फ़ंक्शन से अवगत नहीं था। मुझे लगता है कि यह कई बार लगातार तत्वों को वापस कर देगा, यह अधिकतम आवृत्ति तत्व की तुलना करके काम करता है, जब मैं अधिक बार तत्व देखता हूं, तो यह परिणाम सूची को हटा देगा, और इसे एक बार जोड़ देगा; या यदि यह वही आवृत्ति है, तो यह बस इसमें शामिल है। और जब तक पूरे काउंटर के माध्यम से पुनरावृत्त नहीं किया जाता है तब तक चलते रहें।
क्या बार जब देखते हैं के बारे में 3 बार-बार नंबर की तरह [ '1', '1', '2', '2', '8', '7',, '7'] ... आपकी लिपि इसके लिए काम नहीं करेगी। धन्यवाद, अन्यथा समाधान अच्छा है। –
@james: पुन: पेश नहीं किया जा सकता है, यह दोनों कोड स्निपेट के साथ 'सेट ([' 1 ',' 2 ',' 7 ']) देता है। –
आह हाँ, कोई समस्या नहीं, यह अब मेरे लिए बहुत अच्छा काम कर रहा है। बहुत धन्यवाद। –