मैं पायथन में एक शब्दकोश से सभी मूल्यों को कैसे निकाल सकता हूं?


177

मेरे पास एक डिक्शनरी है d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}

मैं dसूची में सभी मान कैसे निकालूं l?

जवाबों:


339

आप केवल कुंजी शब्दकोश की जरूरत है 1, 2और 3उपयोग: your_dict.keys()

आप केवल मूल्यों शब्दकोश की जरूरत है -0.3246, -0.9185और -3985उपयोग: your_dict.values()

यदि आप कुंजी और मान दोनों का उपयोग करना चाहते हैं: your_dict.items()जो ट्यूपल्स की सूची लौटाता है [(key1, value1), (key2, value2), ...]


64
यदि आप पायथन 3 का उपयोग कर रहे हैं, तो आप list(your_dict.values())एक सूची प्राप्त करने के लिए उपयोग करना चाहते हैं (और एक श्रुतलेख वस्तु नहीं)।
मथायस ब्रौन

40

उपयोग values()

>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}

>>> d.values()
<<< [-0.3246, -0.9185, -3985]

16

यदि आप सभी मान चाहते हैं, तो इसका उपयोग करें:

dict_name_goes_here.values()

यदि आप सभी कुंजियाँ चाहते हैं, तो इसका उपयोग करें:

dict_name_goes_here.keys()

यदि आप सभी आइटम चाहते हैं (दोनों कुंजी और मूल्य), तो मैं इसका उपयोग करूंगा:

dict_name_goes_here.items()


9

नेस्टेड डाइक के लिए, डीकट्स की सूची, और सूचीबद्ध डाइक के डक्ट्स, ... आप उपयोग कर सकते हैं

def get_all_values(d):
    if isinstance(d, dict):
        for v in d.values():
            yield from get_all_values(v)
    elif isinstance(d, list):
        for v in d:
            yield from get_all_values(v)
    else:
        yield d 

एक उदाहरण:

d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}

list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]

पुनश्च: मुझे प्यार है yield। ;-)





3

चाबियाँ देखने के लिए:

for key in d.keys():
    print(key)

प्रत्येक कुंजी को संदर्भित करने वाले मान प्राप्त करने के लिए:

for key in d.keys():
    print(d[key])

सूची में जोड़ें:

for key in d.keys():
    mylist.append(d[key])

सूची समझ के रूप में अच्छी तरह से मदद कर सकते हैं
DeafaltCoder

सूची = [डी [कुंजी] के लिए d.keys ()] में
DeafaltCoder

0

Pythonic duck-typing को यह निर्धारित करना चाहिए कि कोई वस्तु क्या कर सकती है, यानी उसके गुण और विधियाँ। एक शब्दकोश वस्तु को देखकर कोई यह अनुमान लगाने की कोशिश कर सकता है कि उसके पास कम से कम एक है: dict.keys()या dict.values()विधियाँ। आपको प्रोग्रामिंग भाषाओं के साथ भविष्य के काम के लिए इस दृष्टिकोण का उपयोग करने की कोशिश करनी चाहिए, जिनके प्रकार की जाँच रनटाइम पर होती है, विशेष रूप से जो बतख-टाइपिंग प्रकृति के साथ होती है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.