Python - Nested Dictionaries

பைத்தான் - கூடு கட்டிய அகராதிகள்

கூடு கட்டிய அகராதிகள்

ஒரு அகராதியில் அகராதிகள் இருக்கலாம், இது கூடு கட்டிய அகராதிகள் என்று அழைக்கப்படுகிறது.

எடுத்துக்காட்டு

மூன்று அகராதிகளைக் கொண்ட ஒரு அகராதியை உருவாக்கு:

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

எடுத்துக்காட்டு

அல்லது, நீங்கள் மூன்று அகராதிகளை ஒரு புதிய அகராதியில் சேர்க்க விரும்பினால்:

மூன்று அகராதிகளை உருவாக்கு, பிறகு மற்ற மூன்று அகராதிகளைக் கொண்டிருக்கும் ஒரு அகராதியை உருவாக்கு:

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

கூடு கட்டிய அகராதிகளில் உருப்படிகளை அணுகுதல்

கூடு கட்டிய அகராதியிலிருந்து உருப்படிகளை அணுக, வெளி அகராதியில் தொடங்கி அகராதிகளின் பெயர்களைப் பயன்படுத்தவும்:

எடுத்துக்காட்டு

குழந்தை 2 இன் பெயரை அச்சிடு:

print(myfamily["child2"]["name"])

கூடு கட்டிய அகராதிகள் வழியாக சுழற்சி செய்ய

இந்த வழியில் items() முறையைப் பயன்படுத்தி ஒரு அகராதி வழியாக நீங்கள் சுழற்சி செய்யலாம்:

எடுத்துக்காட்டு

அனைத்து கூடு கட்டிய அகராதிகளின் விசைகள் மற்றும் மதிப்புகள் வழியாக சுழற்சி செய்ய:

for x, obj in myfamily.items():
  print(x)

  for y in obj:
    print(y + ':', obj[y])

🔍 விளக்கம்:

இந்த சுழற்சி முதலில் வெளி அகராதியின் ஒவ்வொரு விசை-மதிப்பு ஜோடியையும் அணுகுகிறது, பின்னர் உள் அகராதியின் ஒவ்வொரு விசை-மதிப்பு ஜோடியையும் அணுகுகிறது.

பயிற்சி

இந்த தொடரியலைக் கவனியுங்கள்:

a = {'name' : 'John', 'age' : '20'}
b = {'name' : 'May', 'age' : '23'}
customers = {'c1' : a, 'c2' : b}

'May' என்ற பெயரை அச்சிடுவதற்கான சரியான தொடரியல் எது?

print(customers['c2']['name'])
✓ சரி! இது கூடு கட்டிய அகராதியை அணுகுவதற்கான சரியான தொடரியல்
print(customers.c2.b['name'])
✗ தவறு! புள்ளி குறியீட்டு முறை பைத்தான் அகராதிகளில் பயனுள்ளதாக இல்லை
print(customers.c2.name)
✗ தவறு! அகராதி உருப்படிகளை அணுகுவதற்கு சதுர அடைப்புக்குறி குறியீட்டு முறை பயன்படுத்தப்படுகிறது