উত্তর:
len(yourdict.keys())
বা শুধু
len(yourdict)
আপনি যদি ফাইলটিতে অনন্য শব্দ গণনা করতে চান, আপনি কেবল ব্যবহার করতে set
এবং পছন্দ করতে পারেন
len(set(open(yourdictfile).read().split()))
len(yourdict.keys())
এবং len(yourdict)
ও (1)। পরেরটি সামান্য দ্রুত। আমার পরীক্ষা নীচে দেখুন।
len(yourdict.values())
len()
আপনার অভিধানে সরাসরি কল করা কাজ করে এবং এটির পুনরুক্তি তৈরির চেয়ে দ্রুত d.keys()
এবং len()
এটিতে কল করা, তবে আপনার প্রোগ্রামটি যা কিছু করছে তার তুলনায় উভয়ের গতি তুচ্ছ হবে।
d = {x: x**2 for x in range(1000)}
len(d)
# 1000
len(d.keys())
# 1000
%timeit len(d)
# 41.9 ns ± 0.244 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit len(d.keys())
# 83.3 ns ± 0.41 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
যদি প্রশ্নটি কীওয়ার্ডগুলির সংখ্যা গণনা সম্পর্কে হয় তবে এর মতো কিছু প্রস্তাব দেওয়া উচিত
def countoccurrences(store, value):
try:
store[value] = store[value] + 1
except KeyError as e:
store[value] = 1
return
মূল ফাংশনটিতে এমন কিছু থাকে যা ডেটা থেকে লুপ করে এবং মানগুলিকে কাউন্টকোক্রান্সিয়েন্স ফাংশনে পাস করে
if __name__ == "__main__":
store = {}
list = ('a', 'a', 'b', 'c', 'c')
for data in list:
countoccurrences(store, data)
for k, v in store.iteritems():
print "Key " + k + " has occurred " + str(v) + " times"
কোড আউটপুট
Key a has occurred 2 times
Key c has occurred 2 times
Key b has occurred 1 times
countoccurrences()
পরিবর্তে হওয়া উচিত count_occurrences()
। এছাড়াও, যদি আপনি আমদানি collections.Counter
, এটা করতে অনেক ভালো উপায়: from collections import Counter; store = Counter(); for data in list: store[list] += 1
।
পাইথন 3 প্রুফ তৈরি করতে আন্ডারওয়াটারক্রিমলিন পোস্ট করা উত্তরটিতে কিছু পরিবর্তন করা হয়েছিল। উত্তর হিসাবে নীচে একটি বিস্ময়কর ফলাফল।
সিস্টেম চশমা:
import timeit
d = {x: x**2 for x in range(1000)}
#print (d)
print (len(d))
# 1000
print (len(d.keys()))
# 1000
print (timeit.timeit('len({x: x**2 for x in range(1000)})', number=100000)) # 1
print (timeit.timeit('len({x: x**2 for x in range(1000)}.keys())', number=100000)) # 2
ফলাফল:
1) = 37.0100378
2) = 37.002148899999995
সুতরাং এটি len(d.keys())
বর্তমানে কেবল ব্যবহারের চেয়ে দ্রুততর বলে মনে হচ্ছে len()
।