我已经为我的python课程分配了一个练习。目标是创建一些几何对象作为Shape对象的子类,这些对象将通过一些断言评估。
以下是代码:
class Shape(object):
__metaclass__ = ABCMeta
def __init__(self, coords):
super(Shape, self).__init__()
self._coords = list(map(int, coords))
def __getitem__(self, key):
return self._coords[key]
def move(self, distance):
self._coords = distance
class Point(Shape):
def __init__(self, coords):
super(Point,self).__init__(coords)
if __name__ == '__main__':
p = Point((0,0))
p.move((1,1))
assert p[0,0], p[0,1] == (1,1) # Check the coordinates
问题是如何访问使用列表索引在Shape超类中创建的coords列表? 是否有可能使用其他列表索引列表?
答案 0 :(得分:0)
如果我理解正确,您想要从另一个列表中的列表中访问元素。
为此,您只需将每个索引写在一对单独的方括号中。
如果您的列表为nested_list = [ [1, 2] , [3, 4] ]
,则可以访问4
项,如下所示:
print(nested_list[1][0])
这等于下面的长形式,这应该澄清索引查找的链接是如何工作的:
inner_list = nested_list[1]
print(inner_list[0])
答案 1 :(得分:0)
如果obj[m,n]==v
是obj
,则可以使用确切的语法dict
!
任何hashable(最不可变)类型都可以用作字典键。元组,例如(1,2)
,是可以清除的。因此,实例化字典是有效的:
>>> my_dict = { (1,2):'A', (6,7,8):'B' }
可以编入索引:
>>> my_dict[1,2]
'A'
>>> my_dict[6,7,8]
'B'
>>> assert my_dict[6,7,8] == 'B'
这种方法可以让你匹配断言语法。