ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್ (Dictionary Comprehension)
ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್ (Dictionary Comprehension) ಎಂದರೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಇಟರೇಬಲ್ನಿಂದ ಹೊಸ ಡಿಕ್ಷನರಿಯನ್ನು ರಚಿಸಲು ಪೈಥಾನ್ನಲ್ಲಿರುವ ಒಂದು ಸಂಕ್ಷಿಪ್ತ ಮತ್ತು ಶಕ್ತಿಯುತ ವಿಧಾನ. ಇದು ಲಿಸ್ಟ್ ಮತ್ತು ಸೆಟ್ ಕಾಂಪ್ರಹೆನ್ಷನ್ಗಳಂತೆಯೇ, ಆದರೆ ಇದು key: value ಜೋಡಿಗಳನ್ನು ರಚಿಸುತ್ತದೆ.
ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್ ಸಿಂಟ್ಯಾಕ್ಸ್
-key_expression: ಹೊಸ ಡಿಕ್ಷನರಿಯ ಪ್ರತಿಯೊಂದು ಕೀ ಅನ್ನು ಹೇಗೆ ರಚಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ ಎಕ್ಸ್ಪ್ರೆಶನ್.
- value_expression: ಹೊಸ ಡಿಕ್ಷನರಿಯ ಪ್ರತಿಯೊಂದು ಮೌಲ್ಯವನ್ನು ಹೇಗೆ ರಚಿಸಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ ಎಕ್ಸ್ಪ್ರೆಶನ್.
- item: ಇಟರೇಬಲ್ನಿಂದ ಬರುವ ಪ್ರತಿಯೊಂದು ಐಟಂ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ವೇರಿಯೇಬಲ್.
- iterable: for ಲೂಪ್ ಚಲಿಸುವ ಸೀಕ್ವೆನ್ಸ್.
- if condition: ಐಟಂ ಅನ್ನು ಹೊಸ ಡಿಕ್ಷನರಿಗೆ ಸೇರಿಸಬೇಕೇ ಎಂದು ನಿರ್ಧರಿಸುವ ಐಚ್ಛಿಕ ಷರತ್ತು.
ಉದಾಹರಣೆಗಳು
1. ಮೂಲಭೂತ ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್
ಸಂಖ್ಯೆಗಳ ಲಿಸ್ಟ್ನಿಂದ, ಪ್ರತಿ ಸಂಖ್ಯೆಯನ್ನು ಕೀ ಆಗಿ ಮತ್ತು ಅದರ ವರ್ಗವನ್ನು (square) ಮೌಲ್ಯವಾಗಿ ಹೊಂದಿರುವ ಡಿಕ್ಷನರಿಯನ್ನು ರಚಿಸೋಣ.
ಸಾಂಪ್ರದಾಯಿಕ ವಿಧಾನ (for ಲೂಪ್):
numbers = [1, 2, 3, 4]
squares_dict = {}
for num in numbers:
squares_dict[num] = num * num
print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16}
ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್ ವಿಧಾನ:
numbers = [1, 2, 3, 4]
squares_dict = {num: num * num for num in numbers}
print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16}
2. ಷರತ್ತಿನೊಂದಿಗೆ ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್
ಹೆಸರುಗಳ ಲಿಸ್ಟ್ನಿಂದ, 5 ಅಕ್ಷರಗಳಿಗಿಂತ ಹೆಚ್ಚು ಇರುವ ಹೆಸರುಗಳನ್ನು ಮತ್ತು ಅವುಗಳ ಉದ್ದವನ್ನು ಹೊಂದಿರುವ ಡಿಕ್ಷನರಿಯನ್ನು ರಚಿಸೋಣ.
names = ["ರವಿಕಿರಣ", "ನಿಶ್ಕಲಾ", "ಅನಿಲ್", "ಗೋವರ್ಧನ್"]
long_names_len = {name: len(name) for name in names if len(name) > 5}
print(long_names_len) # Output: {'ರವಿಕಿರಣ': 8, 'ನಿಶ್ಕಲಾ': 7, 'ಗೋವರ್ಧನ್': 8}
3. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಡಿಕ್ಷನರಿಯಿಂದ ಹೊಸ ಡಿಕ್ಷನರಿ ರಚಿಸುವುದು
ವಿದ್ಯಾರ್ಥಿಗಳ ಅಂಕಗಳ ಡಿಕ್ಷನರಿಯಿಂದ, 90ಕ್ಕಿಂತ ಹೆಚ್ಚು ಅಂಕ ಪಡೆದ ವಿದ್ಯಾರ್ಥಿಗಳ ಹೊಸ ಡಿಕ್ಷನರಿಯನ್ನು ರಚಿಸೋಣ.
scores = {"ರವಿಕಿರಣ": 95, "ನಿಶ್ಕಲಾ": 88, "ಗೋವರ್ಧನ್": 92}
high_scorers = {name: score for name, score in scores.items() if score > 90}
print(high_scorers) # Output: {'ರವಿಕಿರಣ': 95, 'ಗೋವರ್ಧನ್': 92}
4. ಕೀ ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಅದಲು-ಬದಲು ಮಾಡುವುದು (Swapping Keys and Values)
original_dict = {"a": 1, "b": 2, "c": 3}
swapped_dict = {value: key for key, value in original_dict.items()}
print(swapped_dict) # Output: {1: 'a', 2: 'b', 3: 'c'}
ಪ್ರಯೋಜನಗಳು
- ಸಂಕ್ಷಿಪ್ತ ಮತ್ತು ಓದಬಲ್ಲ ಕೋಡ್:
forಲೂಪ್ಗಳಿಗಿಂತ ಕಡಿಮೆ ಸಾಲುಗಳಲ್ಲಿ ಡಿಕ್ಷನರಿಗಳನ್ನು ರಚಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. - ಪರಿಣಾಮಕಾರಿ: ಇದು ಸಾಮಾನ್ಯವಾಗಿ
forಲೂಪ್ ಮತ್ತು.append()ಅಥವಾ ಕೀ ನಿಯೋಜನೆಗಿಂತ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ.
ಲಿಸ್ಟ್ ಮತ್ತು ಸೆಟ್ ಕಾಂಪ್ರಹೆನ್ಷನ್ಗಳಂತೆ, ಡಿಕ್ಷನರಿ ಕಾಂಪ್ರಹೆನ್ಷನ್ಗಳು ಕೂಡ ಪೈಥಾನ್ನಲ್ಲಿ ಡೇಟಾವನ್ನು ಪರಿವರ್ತಿಸಲು ಮತ್ತು ರಚಿಸಲು ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ.