首页 > 解决方案 > 如何在 for 循环中访问我的类中的数组元素

问题描述

这段代码有什么问题?我是 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])

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

标签: pythonclass

解决方案


似乎问题在于您试图将字符串(食物)列表的元素与数字列表(数量)的元素“连接”起来。假设两个数组的长度相同,并且您使用的是 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

推荐阅读