2014-10-04 10 views
10

मैं इस सब के लिए बहुत नया हूं इसलिए यह कोई नोबई प्रश्न हो सकता है .. लेकिन मुझे शब्दकोश मूल्यों की लंबाई मिल रही है ... लेकिन मुझे नहीं पता कि यह कैसे किया जा सकता है ।शब्दकोश मानों की लंबाई कैसे प्राप्त करें

उदाहरण के लिए,

d = {'key':['hello', 'brave', 'morning', 'sunset', 'metaphysics']} 

मैं सोच रहा था कि वहाँ एक तरह से मैं शब्दकोश मूल्य की मदों की लेन या नंबर मिल सकता है है।

धन्यवाद

+0

नीचे के रूप में चर्चा की, यह बात नहीं क्या आप प्रत्येक कुंजी या सिर्फ लंबाई की सूची के लिए अपनी लंबाई के साथ कर रही होगी ... लंबाई करता है? – user1269942

उत्तर

17

ज़रूर। इस मामले में, तुम सिर्फ कर चाहते हैं:

length_key = len(d['key']) # length of the list stored at `'key'` ... 

यह कारण है कि आप वास्तव में यह चाहता हूँ कहना मुश्किल है, लेकिन, शायद यह एक और dict कि मूल्यों की लंबाई के लिए कुंजी के नक्शे बनाने के लिए उपयोगी होगा:

length_dict = {key: len(value) for key, value in d.items()} 
length_key = length_dict['key'] # length of the list stored at `'key'` ... 
+0

+1, लेकिन "length_key" एक परिवर्तनीय नाम के रूप में थोड़ा भ्रामक है क्योंकि यह दिया गया मूल्य की लंबाई है। – user1269942

+0

@ user1269942 - हाँ, मुझे उस के लिए एक अच्छे नाम के साथ आने में मुश्किल हो रही थी। । । – mgilson

3

एक शब्दकोश आप यह कर सकते हैं में मूल्यों की लंबाई के सभी खोजने के लिए:

lengths = [len(v) for v in d.values()] 
+0

@squinguy मुझे लगता है क्योंकि एक ऐसा आदेश आदेश को संरक्षित नहीं करता है, इस तरह से सूची आइटम किस निर्देश वस्तु से मेल खाता है, इस मामले में संदिग्ध होगा। – user1269942

+0

@ user1269942 यह उचित है, हालांकि उनकी चाबियों के मूल्यों को सहसंबंधित करने का कोई उल्लेख नहीं था। मैंने इसे सभी मूल्यों की लंबाई को देखकर लिया। – squiguy

+0

या, एक उचित व्याख्या! मैंने इसके बारे में सोचा नहीं था ... मैंने अभी एक टिप्पणी जोड़ दी है जो उन्हें बताती है कि अस्पष्टता है। – user1269942

2

कुछ प्रयोग करें, यह देखने के लिए कि हम एक नियम में विभिन्न dict/array मूल्यों की लंबाई कैसे प्राप्त/समझ सकते हैं।

हमारे परीक्षण dict बनाने के लिए, list and dict comprehensions देखें:

>>> my_dict[3] 
[0, 1, 2] 
>>> len(my_dict[3]) 
3 

प्रत्येक कुंजी के मूल्यों की लंबाई की एक dict प्राप्त करें:

>>> my_dict = {x:[i for i in range(x)] for x in range(4)} 
>>> my_dict 
{0: [], 1: [0], 2: [0, 1], 3: [0, 1, 2]} 

एक विशिष्ट कुंजी के मान की लंबाई प्राप्त करें:

>>> key_to_value_lengths = {k:len(v) for k, v in my_dict.items()} 
{0: 0, 1: 1, 2: 2, 3: 3} 
>>> key_to_value_lengths[2] 
2 

dict में सभी मूल्यों की लंबाई प्राप्त करें:

>>> [len(x) for x in my_dict.values()] 
[0, 1, 2, 3] 
>>> sum([len(x) for x in my_dict.values()]) 
6 
-1
d={1:'a',2:'b'} 
sum=0 
for i in range(0,len(d),1): 
    sum=sum+1 
i=i+1 
print i 

आउटपुट = 2

+0

क्या आप इस कोड को कुछ और संदर्भ दे सकते हैं? –

+1

इस कोड स्निपेट के लिए धन्यवाद, जो कुछ सीमित अल्पकालिक सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण [बहुत सुधार होगा] (// meta.stackexchange.com/q/114762) यह दिखाकर इसका दीर्घकालिक मूल्य * क्यों * यह समस्या का एक अच्छा समाधान है, और भविष्य के पाठकों के साथ इसे और अधिक उपयोगी बना देगा अन्य, समान प्रश्न। आपके द्वारा किए गए अनुमानों सहित कुछ स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें। –

संबंधित मुद्दे