*Memos:
- My post explains __getitem__() and __setitem__().
- My post explains the custom set, dictionary and string with __getitem__() and __setitem__().
- My post explains a list and the list with indexing.
- My post explains a tuple.
You can create the custom list and tuple with __getitem__() and __setitem__() as shown below:
<Custom list with upper() & lower()>
class MyList:
data = ['a', 'b', 'c', 'd', 'e']
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
def upper(self):
self.data = [x.upper() for x in self.data]
def lower(self):
self.data = [x.lower() for x in self.data]
v = MyList()
print(v)
# <__main__.MyList object at 0x0000029B85E772F0>
print(v[0], v[1], v[2], v[3], v[4])
print(v.__getitem__(index=0), v.__getitem__(index=1),
v.__getitem__(index=2), v.__getitem__(index=3),
v.__getitem__(index=4))
# a b c d e
print(v[1:3])
print(v.__getitem__(index=slice(1, 3)))
# ['b', 'c']
print(v[:])
print(v.__getitem__(index=slice(None)))
# ['a', 'b', 'c', 'd', 'e']
for x in v:
print(x)
# a
# b
# c
# d
# e
v.upper()
print(v[:])
# ['A', 'B', 'C', 'D', 'E']
v[0] = 'X'
v[1:5] = ['Y', 'Z']
print(v[:])
# ['X', 'Y', 'Z']
v.lower()
print(v[:])
# ['x', 'y', 'z']
<Custom assignable tuple with upper() & lower()>
class MyTuple:
data = ('a', 'b', 'c', 'd', 'e')
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
temp = list(self.data)
temp[index] = value
self.data = tuple(temp)
def upper(self):
self.data = tuple(x.upper() for x in self.data)
def lower(self):
self.data = tuple(x.lower() for x in self.data)
v = MyTuple()
print(v)
# <__main__.MyTuple object at 0x0000029B85B2F260>
print(v[0], v[1], v[2], v[3], v[4])
print(v.__getitem__(index=0), v.__getitem__(index=1),
v.__getitem__(index=2), v.__getitem__(index=3),
v.__getitem__(index=4))
# a b c d e
print(v[1:3])
print(v.__getitem__(index=slice(1, 3)))
# ('b', 'c')
print(v[:])
print(v.__getitem__(index=slice(None)))
# ('a', 'b', 'c', 'd', 'e')
for x in v:
print(x)
# a
# b
# c
# d
# e
v.upper()
print(v[:])
# ('A', 'B', 'C', 'D', 'E')
v[0] = 'X'
v[1:5] = ('Y', 'Z')
print(v[:])
# ('X', 'Y', 'Z')
v.lower()
print(v[:])
# ('x', 'y', 'z')
Top comments (0)