ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪೈಥಾನ್ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ಸ್: ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು

1. ಲಿಸ್ಟ್ (List) ಮತ್ತು ಟಪಲ್ (Tuple) ನಡುವಿನ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೇನು?

ಉತ್ತರ: ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಮ್ಯೂಟಬಿಲಿಟಿ (Mutability).

  • ಲಿಸ್ಟ್ (List): ಮ್ಯೂಟಬಲ್ (Mutable), ಅಂದರೆ ಲಿಸ್ಟ್ ಅನ್ನು ರಚಿಸಿದ ನಂತರ ಅದರ ಅಂಶಗಳನ್ನು ಸೇರಿಸಬಹುದು, ತೆಗೆದುಹಾಕಬಹುದು ಅಥವಾ ಬದಲಾಯಿಸಬಹುದು. ಇದನ್ನು [] ಬಳಸಿ ಡಿಫೈನ್ ಮಾಡಲಾಗುತ್ತದೆ.
  • ಟಪಲ್ (Tuple): ಇಮ್ಮ್ಯೂಟಬಲ್ (Immutable), ಅಂದರೆ ಟಪಲ್ ಅನ್ನು ರಚಿಸಿದ ನಂತರ ಅದರ ಅಂಶಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. ಇದನ್ನು () ಬಳಸಿ ಡಿಫೈನ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಉದಾಹರಣೆ:

my_list = [1, 'a', 3.5]
my_list[1] = 'b'  # ಸಾಧ್ಯ

my_tuple = (1, 'a', 3.5)
# my_tuple[1] = 'b' # TypeError ನೀಡುತ್ತದೆ

2. ಡಿಕ್ಷನರಿ (Dictionary) ಎಂದರೇನು?

ಉತ್ತರ: ಡಿಕ್ಷನರಿ ಎನ್ನುವುದು ಕೀ-ವ್ಯಾಲ್ಯೂ (key-value) ಜೋಡಿಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಒಂದು ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್.

  • ಕೀ (Key): ಯೂನಿಕ್ ಮತ್ತು ಇಮ್ಮ್ಯೂಟಬಲ್ ಆಗಿರಬೇಕು (ಉದಾ: string, number, tuple).
  • ವ್ಯಾಲ್ಯೂ (Value): ಯಾವುದೇ ಡೇಟಾ ಟೈಪ್ ಆಗಿರಬಹುದು.
  • ಡಿಕ್ಷನರಿಗಳು ಆರ್ಡರ್ ಆಗಿರುತ್ತವೆ (Python 3.7+ ನಿಂದ) ಮತ್ತು ಮ್ಯೂಟಬಲ್ ಆಗಿರುತ್ತವೆ.

ಉದಾಹರಣೆ:

student = {
    "name": "Ravi",
    "age": 22,
    "city": "Bengaluru"
}
print(student["name"])  # Ravi

student["age"] = 23  # ವ್ಯಾಲ್ಯೂ ಬದಲಾಯಿಸಬಹುದು
print(student)

3. ಸೆಟ್ (Set) ಎಂದರೇನು ಮತ್ತು ಅದರ ಉಪಯೋಗವೇನು?

ಉತ್ತರ: ಸೆಟ್ ಎನ್ನುವುದು ಯೂನಿಕ್ (unique) ಅಂಶಗಳ ಒಂದು ಅನ್‌ಆರ್ಡರ್ಡ್ (unordered) ಕಲೆಕ್ಷನ್.

  • ಇದರಲ್ಲಿ ಡ್ಯೂಪ್ಲಿಕೇಟ್ ಅಂಶಗಳನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುವುದಿಲ್ಲ.
  • ಗಣಿತದ ಸೆಟ್ ಆಪರೇಷನ್‌ಗಳಾದ ಯೂನಿಯನ್, ಇಂಟರ್‌ಸೆಕ್ಷನ್, ಡಿಫರೆನ್ಸ್ ಇತ್ಯಾದಿಗಳನ್ನು ಮಾಡಲು ಇದು ತುಂಬಾ ಉಪಯುಕ್ತ.

ಉದಾಹರಣೆ:

numbers = {1, 2, 3, 2, 4, 1}
print(numbers)  # {1, 2, 3, 4} (ಡ್ಯೂಪ್ಲಿಕೇಟ್‌ಗಳು ತೆಗೆದುಹಾಕಲ್ಪಡುತ್ತವೆ)

set1 = {1, 2, 3}
set2 = {3, 4, 5}

# ಯೂನಿಯನ್
print(set1 | set2)  # {1, 2, 3, 4, 5}

# ಇಂಟರ್‌ಸೆಕ್ಷನ್
print(set1 & set2)  # {3}

4. ಲಿಸ್ಟ್ ಕಾಂಪ್ರಹೆನ್ಷನ್ (List Comprehension) ಎಂದರೇನು?

ಉತ್ತರ: ಲಿಸ್ಟ್ ಕಾಂಪ್ರಹೆನ್ಷನ್ ಎನ್ನುವುದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಲಿಸ್ಟ್‌ನಿಂದ ಹೊಸ ಲಿಸ್ಟ್ ಅನ್ನು ರಚಿಸಲು ಒಂದು ಚಿಕ್ಕ ಮತ್ತು ಸುಲಭವಾದ ಮಾರ್ಗ. ಇದು for ಲೂಪ್‌ಗಿಂತ ಹೆಚ್ಚು ಕಾಂಪ್ಯಾಕ್ಟ್ ಮತ್ತು ಓದಲು ಸುಲಭವಾಗಿರುತ್ತದೆ.

ಸಿಂಟ್ಯಾಕ್ಸ್: new_list = [expression for item in iterable if condition]

ಉದಾಹರಣೆ:

# for ಲೂಪ್ ಬಳಸಿ
squares = []
for i in range(5):
    squares.append(i * i)

# ಲಿಸ್ಟ್ ಕಾಂಪ್ರಹೆನ್ಷನ್ ಬಳಸಿ
squares_comp = [i * i for i in range(5)]

print(squares)  # [0, 1, 4, 9, 16]
print(squares_comp)  # [0, 1, 4, 9, 16]

5. ಡಿಕ್ಷನರಿಯಿಂದ ಒಂದು ಐಟಂ ಅನ್ನು ಹೇಗೆ ತೆಗೆದುಹಾಕಬಹುದು?

ಉತ್ತರ: ಡಿಕ್ಷನರಿಯಿಂದ ಐಟಂಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಹಲವಾರು ವಿಧಾನಗಳಿವೆ:

  • pop() ಮೆಥಡ್: ನಿರ್ದಿಷ್ಟ ಕೀ ಇರುವ ಐಟಂ ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಅದರ ವ್ಯಾಲ್ಯೂವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
    value = student.pop("age")
    
  • del ಕೀವರ್ಡ್: ನಿರ್ದಿಷ್ಟ ಕೀ ಇರುವ ಐಟಂ ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.
    del student["city"]
    
  • popitem() ಮೆಥಡ್: ಕೊನೆಯದಾಗಿ ಸೇರಿಸಿದ ಐಟಂ ಅನ್ನು (Python 3.7+ ನಿಂದ) ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಅದನ್ನು (key, value) ಟಪಲ್ ಆಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
    item = student.popitem()