SLICE WITH NEGATIVE INDICES
Python
#!/usr/bin/env python3
"""
SLICE WITH NEGATIVE INDICES
Access elements from the end of sequences
"""
print("=== Negative Index Basics ===")
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(f"List: {data}")
print(f"Last element [-1]: {data[-1]}")
print(f"Second to last [-2]: {data[-2]}")
print(f"Third from end [-3]: {data[-3]}")
print("\n=== Slice from End ===")
# Last 3 elements
print(f"Last 3 elements [-3:]: {data[-3:]}")
# Last 5 elements
print(f"Last 5 elements [-5:]: {data[-5:]}")
# Everything except last 2
print(f"All but last 2 [:-2]: {data[:-2]}")
print("\n=== Slice Range with Negatives ===")
# From index 2 to second-to-last
print(f"From index 2 to -2 [2:-2]: {data[2:-2]}")
# From third-to-last to end
print(f"Last 3 [-3:]: {data[-3:]}")
print("\n=== String Slicing with Negatives ===")
text = "Programming"
print(f"Text: {text}")
print(f"Last 4 chars [-4:]: {text[-4:]}")
print(f"Remove last 3 chars [:-3]: {text[:-3]}")
print(f"Middle chars [3:-3]: {text[3:-3]}")
print("\n=== Practical: File Extension ===")
filename = "document.pdf"
extension = filename[-3:] # Last 3 characters
name = filename[:-4] # Everything except last 4 (.pdf)
print(f"Filename: {filename}")
print(f"Name: {name}")
print(f"Extension: {extension}")
print("\n=== Get Last N Elements Function ===")
def get_last_n(lst, n):
return lst[-n:] if n > 0 else []
numbers = list(range(1, 21))
print(f"Last 5: {get_last_n(numbers, 5)}")
print(f"Last 10: {get_last_n(numbers, 10)}")