如何在for循环中从类访问数组元素

时间:2019-04-05 02:49:40

标签: python class

此代码有什么问题?我是python的新手,并且面向对象编码,我不知道如何访问这些值...

代码:

class Stock():

    def __init__(self, foodArray, quantityArray):
        self._foodArray = foodArray
        self._quantity = quantityArray

    def printStock(self):
        for i in range(len(self._foodArray)):
            print(self._foodArray[i] + ' ' + self._quantity[i])

预期: 1 b 2 c 4 x 100 等等...

1 个答案:

答案 0 :(得分:1)

问题似乎在于您试图将字符串(食物)列表中的元素与数字(数量)列表中的元素“连接”在一起。假设两个数组的长度相同,并且您使用的是Python 3.6+,请使用以下命令:

class Stock():    
    def __init__(self, foodArray, quantityArray):
        self._foodArray = foodArray
        self._quantity = quantityArray

    def printStock(self):
        for i in range(len(self._foodArray)):
            print(f'{self._foodArray[i]} {self._quantity[i]}')

如果您使用的是3.6之前的Python版本,请将print语句更改为:

print('{} {}'.format(self._foodArray[i], self._quantity[i]))

您甚至可以使用以下方法简化该方法:

def printStock(self):
    for food, quantity in zip(self._foodArray, self._quantity):
        print(f'{food} {quantity}')

工作示例:

>>> s = Stock(['apple', 'banana', 'coconut'], [1, 2, 3])
>>> s.printStock()
apple 1
banana 2
coconut 3