2010-09-22 17 views
41

क्या पायथन में सरणी में इंडेक्स के रूप में तारों का उपयोग करना संभव है?स्ट्रिंग इंडेक्स के साथ पायथन ऐरे

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

myArray = [] 
myArray["john"] = "johns value" 
myArray["jeff"] = "jeffs value" 
print myArray["john"] 
+6

जो आप दिखा रहे हैं वह __lists__ है, सरणी नहीं। मुझे पैडेंटिक कॉल करें। – aaronasterling

उत्तर

89

क्या आप चाहते हैं एक associative array कहा जाता है। पायथन में इन्हें dictionaries कहा जाता है।

शब्दकोश कभी-कभी अन्य भाषाओं में "सहयोगी यादें" या "सहयोगी सरणी" के रूप में पाए जाते हैं। अनुक्रमों के विपरीत, जिन्हें संख्याओं की एक श्रृंखला द्वारा अनुक्रमित किया गया है, शब्दकोशों को कुंजी द्वारा अनुक्रमित किया जाता है, जो किसी भी अपरिवर्तनीय प्रकार हो सकता है; तार और संख्या हमेशा कुंजी हो सकती है।

myDict = {} 
myDict["john"] = "johns value" 
myDict["jeff"] = "jeffs value" 

ऊपर dict बनाने के लिए वैकल्पिक रास्ता:

myDict = {"john": "johns value", "jeff": "jeffs value"} 

एक्सेस करना मान:

print myDict["jeff"] # => "jeffs value" 

कुंजी हो रही है (अजगर वी 2 में):

print myDict.keys() # => ["john", "jeff"] 

यदि आप पाइथन शब्दकोश आंतरिक के बारे में जानना चाहते हैं, तो मैं इस ~ 25 मिनट वीडियो प्रस्तुति की सिफारिश करता हूं: https://www.youtube.com/watch?v=C4Kc8xzcA68। इसे "द माटी डिक्शनरी" कहा जाता है।

+4

महान उदाहरण। पायथन में शब्दकोशों के बारे में जानना हमेशा अच्छा होता है, जैसा कि [MYYN] (http://stackoverflow.com/users/89391/the-myyn) ने कहा, कुंजी एक अपरिवर्तनीय प्रकार का होना चाहिए। यदि आपको कभी भी "एकाधिक" कुंजी वाले मानों को वर्गीकृत करने की आवश्यकता है, तो आपको पाइथन में टुपल प्रकार का उपयोग करना होगा। – Sean

+1

तकनीकी रूप से कुंजी [_hashable_ होना चाहिए] (http://docs.python.org/reference/datamodel.html#object.__hash__), आवश्यक रूप से अपरिवर्तनीय नहीं है, हालांकि 'हैश' फ़ंक्शन द्वारा लौटाया गया मान बदलना नहीं चाहिए जब तक वस्तु को एक शब्दकोश कुंजी के रूप में प्रयोग किया जाता है। यदि ऐसा होता है, तो अपने कार्यक्रम के लिए विचित्र तरीके से दुर्घटनाग्रस्त या दुर्व्यवहार करने के लिए तैयार रहें। –

+0

ऊपर ताकतवर शब्दकोश यूआरएल काम नहीं कर रहा है, https://www.youtube.com/watch?v=C4Kc8xzcA68 –

4

इससे भी बेहतर, OrderedDict (मान लें कि आप किसी सूची की तरह कुछ चाहते हैं) आज़माएं। नियमित नियमों की तुलना में एक सूची के करीब है क्योंकि चाबियों के पास ऑर्डर होता है जैसे सूची तत्वों के पास ऑर्डर होता है। नियमित रूप से निर्देश के साथ, चाबियाँ मनमानी क्रम होती हैं।

ध्यान दें कि यह पायथन 3 और 2.7 में उपलब्ध है। यदि आप पाइथन के पहले संस्करण के साथ उपयोग करना चाहते हैं तो आप इसे करने के लिए इंस्टॉल करने योग्य मॉड्यूल पा सकते हैं।

+0

ध्यान दें कि ऑर्डर्ड डिक्ट की आवश्यकता एक ताना की आवश्यकता से बहुत कम आम है। –

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