स्विफ्ट - शब्दकोशों

स्विफ्ट 4 dictionariesएक ही प्रकार के मूल्यों की अनियंत्रित सूचियों को संग्रहीत करने के लिए उपयोग किया जाता है। स्विफ्ट 4 कड़ी जाँच करता है जो आपको गलती से भी शब्दकोश में गलत प्रकार से प्रवेश करने की अनुमति नहीं देता है।

स्विफ्ट 4 शब्दकोश एक के रूप में जाना जाता है अद्वितीय पहचानकर्ता का उपयोग करें keyएक मूल्य को संग्रहीत करने के लिए जिसे बाद में संदर्भित किया जा सकता है और उसी कुंजी के माध्यम से देखा जा सकता है। किसी सरणी में आइटम के विपरीत, आइटम ए मेंdictionaryएक निर्दिष्ट आदेश नहीं है। आप एक का उपयोग कर सकते हैंdictionary जब आपको उनके पहचानकर्ताओं के आधार पर मूल्यों को देखने की आवश्यकता होती है।

एक शब्दकोश कुंजी या तो एक पूर्णांक या एक स्ट्रिंग हो सकती है बिना प्रतिबंध के, लेकिन यह एक शब्दकोश के भीतर अद्वितीय होना चाहिए।

यदि आप किसी बनाए गए शब्दकोश को एक चर में निर्दिष्ट करते हैं, तो यह हमेशा परिवर्तनशील होता है, जिसका अर्थ है कि आप इसे अपनी वस्तुओं को जोड़कर, हटाकर या बदलकर बदल सकते हैं। लेकिन यदि आप किसी शब्दकोश को किसी स्थिरांक पर असाइन करते हैं, तो वह शब्दकोश अपरिवर्तनीय है, और इसका आकार और सामग्री नहीं बदली जा सकती।

शब्दकोश का निर्माण

आप निम्नलिखित आरंभिक सिंटैक्स का उपयोग करके एक निश्चित प्रकार का एक खाली शब्दकोश बना सकते हैं -

var someDict = [KeyType: ValueType]()

आप एक खाली शब्दकोश बनाने के लिए निम्नलिखित सरल वाक्यविन्यास का उपयोग कर सकते हैं, जिसकी कुंजी Int प्रकार की होगी और संबंधित मान स्ट्रिंग होंगे -

var someDict = [Int: String]()

यहाँ दिए गए मूल्यों के एक सेट से एक शब्दकोश बनाने के लिए एक उदाहरण है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

अनुक्रम आधारित प्रारंभ

स्विफ्ट 4 आपको सरणियों (कुंजी-मूल्य जोड़े) से शब्दकोश बनाने की अनुमति देता है।

var cities = [“Delhi”,”Bangalore”,”Hyderabad”]

आप एक खाली शब्दकोश बनाने के लिए निम्नलिखित सरल वाक्यविन्यास का उपयोग कर सकते हैं, जिसकी कुंजी Int प्रकार की होगी और संबंधित मान स्ट्रिंग होंगे -

var Distance = [2000,10, 620]

यहाँ दिए गए मूल्यों के एक सेट से एक शब्दकोश बनाने के लिए एक उदाहरण है -

let cityDistanceDict = Dictionary(uniqueKeysWithValues: zip(cities, Distance))

कोड की उपरोक्त पंक्तियाँ कुंजी के रूप में शहरों के साथ एक शब्दकोष और मान के रूप में दूरी बनाएगी -

छनन

स्विफ्ट 4 आपको एक शब्दकोश से मूल्यों को फ़िल्टर करने की अनुमति देता है।

var closeCities = cityDistanceDict.filter { $0.value < 1000 }

यदि हम उपरोक्त कोड चलाते हैं तो हमारी क्लोजिटीज़ डिक्शनरी होगी।

["Bangalore" : 10 , "Hyderabad" : 620]

शब्दकोश समूहन

स्विफ्ट 4 आपको शब्दकोश मूल्यों का समूह बनाने की अनुमति देता है।

var cities = ["Delhi","Bangalore","Hyderabad","Dehradun","Bihar"]

आप पहले वर्णमाला के अनुसार शब्दकोश के मूल्यों को समूहित करने के लिए निम्नलिखित सरल वाक्यविन्यास का उपयोग कर सकते हैं।

var GroupedCities = Dictionary(grouping: cities ) { $0.first! }

उपरोक्त कोड का परिणाम होगा

["D" :["Delhi","Dehradun"], "B" : ["Bengaluru","Bihar"], "H" : ["Hyderabad"]]

शब्दकोश तक पहुँचने

आप सबस्क्रिप्ट सिंटैक्स का उपयोग करके किसी शब्दकोश से एक मान प्राप्त कर सकते हैं, उस मूल्य की कुंजी को पार कर सकते हैं जिसे आप वर्ग कोष्ठक के भीतर पुनः प्राप्त करना चाहते हैं।

var someVar = someDict[key]

आइए एक शब्दकोश से मान बनाने, आरंभ करने और उन तक पहुंचने के लिए निम्नलिखित उदाहरण देखें -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someVar = someDict[1]

print( "Value of key = 1 is \(someVar)" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Value of key = 1 is Optional("One")
Value of key = 2 is Optional("Two")
Value of key = 3 is Optional("Three")

शब्दकोश को संशोधित करना

आप उपयोग कर सकते हैं updateValue(forKey:)शब्दकोश की दी गई कुंजी के लिए एक मौजूदा मूल्य जोड़ने के लिए विधि। यह विधि शब्दकोश के मूल्य प्रकार का एक वैकल्पिक मूल्य लौटाती है। यहाँ एक सरल उदाहरण है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var oldVal = someDict.updateValue("New value of one", forKey: 1)
var someVar = someDict[1]

print( "Old value of key = 1 is \(oldVal)" )
print( "Value of key = 1 is \(someVar)" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Old value of key = 1 is Optional("One")
Value of key = 1 is Optional("New value of one")
Value of key = 2 is Optional("Two")
Value of key = 3 is Optional("Three")

आप किसी दिए गए कुंजी पर नए मान निर्दिष्ट करके शब्दकोश के मौजूदा तत्व को संशोधित कर सकते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var oldVal = someDict[1]
someDict[1] = "New value of one"
var someVar = someDict[1]

print( "Old value of key = 1 is \(oldVal)" )
print( "Value of key = 1 is \(someVar)" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Old value of key = 1 is Optional("One")
Value of key = 1 is Optional("New value of one")
Value of key = 2 is Optional("Two")
Value of key = 3 is Optional("Three")

कुंजी-मूल्य जोड़े निकालें

आप उपयोग कर सकते हैं removeValueForKey()एक शब्दकोश से एक कुंजी-मूल्य जोड़ी को निकालने की विधि। यह विधि की-वैल्यू पेयर को हटाती है यदि यह मौजूद है और हटाए गए मान को लौटाता है, या यदि कोई वजूद नहीं है तो nil रिटर्न करता है। यहाँ एक सरल उदाहरण है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var removedValue = someDict.removeValue(forKey: 2)

print( "Value of key = 1 is \(someDict[1])" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Value of key = 1 is Optional("One")
Value of key = 2 is nil
Value of key = 3 is Optional("Three")

आप एक मान से असाइन करके एक कुंजी-मूल्य जोड़ी को हटाने के लिए सबस्क्रिप्ट सिंटैक्स का उपयोग कर सकते हैं nilउस कुंजी के लिए। यहाँ एक सरल उदाहरण है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

someDict[2] = nil

print( "Value of key = 1 is \(someDict[1])" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Value of key = 1 is Optional("One")
Value of key = 2 is nil
Value of key = 3 is Optional("Three")

एक शब्दकोश से अधिक Iterating

आप एक का उपयोग कर सकते हैं for-in एक उदाहरण में दिखाए गए अनुसार एक शब्दकोश में कुंजी-मूल्य जोड़े के पूरे सेट पर टाइप करने के लिए लूप -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (index, keyValue) in someDict.enumerated() {
   print("Dictionary key \(index) - Dictionary value \(keyValue)")
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Dictionary key 2 - Dictionary value Two
Dictionary key 3 - Dictionary value Three
Dictionary key 1 - Dictionary value One

आप उपयोग कर सकते हैं enumerate() फंक्शन जो आइटम के इंडेक्स को उसके (की, वैल्यू) जोड़ी के साथ लौटाता है जैसा कि उदाहरण में नीचे दिखाया गया है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
for (key, value) in someDict.enumerated() {
   print("Dictionary key \(key) - Dictionary value \(value)")
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Dictionary key 0 - Dictionary value (key: 2, value: "Two")
Dictionary key 1 - Dictionary value (key: 3, value: "Three")
Dictionary key 2 - Dictionary value (key: 1, value: "One")

Arrays में परिवर्तित करें

आप कुंजी और मान दोनों के लिए अलग-अलग सरणियों का निर्माण करने के लिए दिए गए शब्दकोश से कुंजी-मूल्य जोड़े की एक सूची निकाल सकते हैं। यहाँ एक उदाहरण है -

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)

print("Print Dictionary Keys")

for (key) in dictKeys {
   print("\(key)")
}
print("Print Dictionary Values")

for (value) in dictValues {
   print("\(value)")
}

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Print Dictionary Keys
2
3
1
Print Dictionary Values
Two
Three
One

गिनती संपत्ति

आप केवल पढ़ने के लिए उपयोग कर सकते हैं count एक शब्दकोश की संपत्ति का पता लगाने के लिए एक शब्दकोश में आइटम की संख्या के रूप में नीचे दिखाया गया है -

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]

print("Total items in someDict1 = \(someDict1.count)")
print("Total items in someDict2 = \(someDict2.count)")

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Total items in someDict1 = 3
Total items in someDict2 = 2

खाली संपत्ति

आप केवल पढ़ने के लिए उपयोग कर सकते हैं empty एक शब्दकोश की संपत्ति यह पता लगाने के लिए कि कोई शब्दकोश खाली है या नहीं, जैसा कि नीचे दिखाया गया है -

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]
var someDict3:[Int:String] = [Int:String]()

print("someDict1 = \(someDict1.isEmpty)")
print("someDict2 = \(someDict2.isEmpty)")
print("someDict3 = \(someDict3.isEmpty)")

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

someDict1 = false
someDict2 = false
someDict3 = true