Python Dictionary Methods

பைத்தான் சொற்களஞ்சிய முறைகள் கற்றுக்கொள்ளுங்கள்

Python - சொற்களஞ்சிய முறைகள்

பைத்தானில் சொற்களஞ்சியங்களில் பயன்படுத்தக்கூடிய உள்ளமைக்கப்பட்ட முறைகளின் தொகுப்பு உள்ளது.

சொற்களஞ்சிய முறைகள்

முறை விளக்கம் எடுத்துக்காட்டு
clear() சொற்களஞ்சியத்திலிருந்து அனைத்து உருப்படிகளையும் நீக்குகிறது dict.clear()
copy() சொற்களஞ்சியத்தின் நகலைத் தருகிறது new_dict = dict.copy()
fromkeys() குறிப்பிட்ட விசைகள் மற்றும் மதிப்பு கொண்ட சொற்களஞ்சியத்தைத் தருகிறது dict.fromkeys(keys, value)
get() குறிப்பிட்ட விசையின் மதிப்பைத் தருகிறது dict.get(key)
items() ஒவ்வொரு விசை-மதிப்பு இணைக்கும் ஒரு டப்பிள் கொண்ட பட்டியலைத் தருகிறது dict.items()
keys() சொற்களஞ்சியத்தின் விசைகளைக் கொண்ட பட்டியலைத் தருகிறது dict.keys()
pop() குறிப்பிட்ட விசையைக் கொண்ட உருப்படியை நீக்குகிறது dict.pop(key)
popitem() கடைசியாகச் செருகப்பட்ட விசை-மதிப்பு இணையை நீக்குகிறது dict.popitem()
setdefault() குறிப்பிட்ட விசையின் மதிப்பைத் தருகிறது. விசை இல்லையென்றால்: விசையைக் கொடுக்கப்பட்ட மதிப்புடன் செருகுகிறது dict.setdefault(key, value)
update() குறிப்பிட்ட விசை-மதிப்பு இணைகளுடன் சொற்களஞ்சியத்தை புதுப்பிக்கிறது dict.update(other_dict)
values() சொற்களஞ்சியத்திலுள்ள அனைத்து மதிப்புகளின் பட்டியலைத் தருகிறது dict.values()

முறைகளின் வகைகள்

தேடல் முறைகள்

  • get() - விசையின் மதிப்பைப் பெறு
  • setdefault() - விசை இல்லையென்றால் செருகு
  • keys() - அனைத்து விசைகளையும் பெறு
  • values() - அனைத்து மதிப்புகளையும் பெறு
  • items() - அனைத்து இணைகளையும் பெறு

இந்த முறைகள் தகவல்களைப் பெற உதவுகின்றன

மாற்றும் முறைகள்

  • update() - சொற்களஞ்சியத்தை புதுப்பி
  • pop() - உருப்படியை நீக்கு
  • popitem() - கடைசி உருப்படியை நீக்கு
  • clear() - அனைத்தையும் நீக்கு
  • copy() - நகல் எடு

இந்த முறைகள் சொற்களஞ்சியத்தை மாற்றும்

உருவாக்கும் முறைகள்

  • fromkeys() - புதிய சொற்களஞ்சியத்தை உருவாக்கு
  • copy() - நகலை உருவாக்கு

இந்த முறைகள் புதிய சொற்களஞ்சியங்களை உருவாக்கும்

முக்கியமான முறைகள் மற்றும் எடுத்துக்காட்டுகள்

get() முறை

விசை கிடைக்காதபோது பிழையைத் தவிர்க்க உதவுகிறது:

student = {"name": "John", "age": 20}

# பாதுகாப்பான அணுகல்
grade = student.get("grade", "Not assigned")
print(grade)  # Output: Not assigned

# பிழையை ஏற்படுத்தும் (KeyError)
# grade = student["grade"]

setdefault() முறை

விசை இல்லையென்றால் செருகுகிறது, இல்லையென்றால் இருக்கும் மதிப்பைத் தருகிறது:

student = {"name": "John", "age": 20}

# விசை இல்லை - செருகப்பட்டு மதிப்பு தரப்படும்
grade = student.setdefault("grade", "A")
print(grade)  # Output: A
print(student)  # {'name': 'John', 'age': 20, 'grade': 'A'}

# விசை உள்ளது - இருக்கும் மதிப்பு தரப்படும்
name = student.setdefault("name", "Unknown")
print(name)  # Output: John

fromkeys() முறை

விசைகளின் தொகுப்பிலிருந்து புதிய சொற்களஞ்சியத்தை உருவாக்குகிறது:

# அனைத்து விசைகளுக்கும் ஒரே மதிப்பு
keys = ["name", "age", "grade"]
default_dict = dict.fromkeys(keys, "Unknown")
print(default_dict)
# Output: {'name': 'Unknown', 'age': 'Unknown', 'grade': 'Unknown'}

# இயல்புநிலை மதிப்பு இல்லாமல்
keys = ["a", "b", "c"]
new_dict = dict.fromkeys(keys)
print(new_dict)  # {'a': None, 'b': None, 'c': None}

update() முறை

இரண்டு சொற்களஞ்சியங்களை இணைக்கிறது அல்லது புதிய இணைகளைச் சேர்க்கிறது:

student = {"name": "John", "age": 20}

# மற்றொரு சொற்களஞ்சியத்துடன் புதுப்பி
additional_info = {"grade": "A", "city": "New York"}
student.update(additional_info)
print(student)
# {'name': 'John', 'age': 20, 'grade': 'A', 'city': 'New York'}

# மாறி வாதங்களுடன் புதுப்பி
student.update(grade="B", phone="123-456-7890")
print(student)
# {'name': 'John', 'age': 20, 'grade': 'B', 'city': 'New York', 'phone': '123-456-7890'}

get() vs setdefault()

get() முறை

student = {"name": "John"}
value = student.get("age", 20)
print(value)  # 20
print(student)  # {'name': 'John'}

செயல்பாடு: மதிப்பை மட்டும் தருகிறது

சொற்களஞ்சியம்: மாறாது

திரும்பும் மதிப்பு: மதிப்பு அல்லது இயல்புநிலை

பயன்பாடு: படித்தல் மட்டும்

setdefault() முறை

student = {"name": "John"}
value = student.setdefault("age", 20)
print(value)  # 20
print(student)  # {'name': 'John', 'age': 20}

செயல்பாடு: மதிப்பைத் தருகிறது மற்றும் விசை இல்லையென்றால் செருகுகிறது

சொற்களஞ்சியம்: மாறக்கூடும் (விசை இல்லையென்றால்)

திரும்பும் மதிப்பு: இருக்கும் மதிப்பு அல்லது புதிய மதிப்பு

பயன்பாடு: படித்தல் மற்றும் எழுதுதல்

⚠️ முக்கிய வேறுபாடு:

get() சொற்களஞ்சியத்தை மாற்றாது, setdefault() விசை இல்லையென்றால் சொற்களஞ்சியத்தை மாற்றும்.

copy() முறை - ஆழமான vs மேலோட்டமான நகல்

மேலோட்டமான நகல்

original = {"a": 1, "b": [1, 2, 3]}
shallow_copy = original.copy()

# மேலோட்டமான மாற்றம்
shallow_copy["b"].append(4)

print("Original:", original)
# {'a': 1, 'b': [1, 2, 3, 4]}
print("Copy:", shallow_copy)
# {'a': 1, 'b': [1, 2, 3, 4]}

செயல்பாடு: மேலோட்டமான நகல்

உள் பொருட்கள்: பகிரப்படுகின்றன

பயன்பாடு: dict.copy()

ஆழமான நகல்

import copy

original = {"a": 1, "b": [1, 2, 3]}
deep_copy = copy.deepcopy(original)

# ஆழமான மாற்றம்
deep_copy["b"].append(4)

print("Original:", original)
# {'a': 1, 'b': [1, 2, 3]}
print("Copy:", deep_copy)
# {'a': 1, 'b': [1, 2, 3, 4]}

செயல்பாடு: ஆழமான நகல்

உள் பொருட்கள்: புதிதாக உருவாக்கப்படுகின்றன

பயன்பாடு: copy.deepcopy(dict)

முறைகளின் திரும்பும் வகைகள்

முறை திரும்பும் வகை எடுத்துக்காட்டு குறிப்பு
get() மதிப்பு அல்லது இயல்புநிலை dict.get('key', None) விசை இல்லையென்றால் பிழை இல்லை
setdefault() மதிப்பு dict.setdefault('key', 'default') விசை இல்லையென்றால் செருகுகிறது
items() dict_items object dict.items() விசை-மதிப்பு இணைகளின் பார்வை
keys() dict_keys object dict.keys() விசைகளின் பார்வை
values() dict_values object dict.values() மதிப்புகளின் பார்வை
pop() நீக்கப்பட்ட மதிப்பு dict.pop('key') விசை கிடைக்காவிட்டால் KeyError
popitem() (விசை, மதிப்பு) டப்பிள் dict.popitem() சொற்களஞ்சியம் காலியாக இருந்தால் KeyError

பயிற்சி

பின்வரும் குறியீட்டின் வெளியீடு என்னவாக இருக்கும்?

student = {"name": "John", "age": 20}
result = student.setdefault("grade", "A")
student.update({"age": 21, "city": "NYC"})
print(student.get("city", "Unknown"))
print(result)

பயிற்சி கேள்வி:

Unknown மற்றும் A
✗ தவறு! update() முறை "city" ஐ "NYC" ஆகச் சேர்க்கிறது, எனவே get() "NYC" ஐத் தரும்
NYC மற்றும் A
✓ சரி! setdefault() "grade" ஐ "A" ஆகச் சேர்க்கிறது மற்றும் "A" ஐத் தருகிறது. update() "city" ஐ "NYC" ஆகச் சேர்க்கிறது. get() "NYC" ஐத் தருகிறது.
NYC மற்றும் None
✗ தவறு! setdefault() "A" ஐத் தருகிறது, None அல்ல, ஏனெனில் "grade" விசை இல்லை
Error ஏற்படும்
✗ தவறு! இந்த குறியீட்டில் பிழை இல்லை. அனைத்து முறைகளும் சரியாகப் பயன்படுத்தப்படுகின்றன

சிறந்த நடைமுறைகள்

பிழைகளைத் தவிர்க்க get() பயன்படுத்தவும்: value = dict.get(key, default_value)
விசை இல்லையென்றால் செருக setdefault() பயன்படுத்தவும்: value = dict.setdefault(key, default_value)
சொற்களஞ்சியங்களை இணைக்க update() பயன்படுத்தவும்: dict1.update(dict2)
copy() முறையின் வரம்புகளை அறிந்து கொள்ளுங்கள்: இது மேலோட்டமான நகல் மட்டுமே, ஆழமான நகல் அல்ல
சொற்களஞ்சியத்தை மீண்டும் இயக்க items() பயன்படுத்தவும்: for key, value in dict.items():
நிலையான விசைகளுடன் சொற்களஞ்சியத்தை உருவாக்க fromkeys() பயன்படுத்தவும்: dict.fromkeys(['a', 'b', 'c'], 0)