从python中的列表中检索整数

时间:2017-09-07 15:06:51

标签: python list pyqt4

我正在尝试检索保存在列表中的随机整数列表" self.buttons"。但是我无法成功访问它们

    moveButton = 70
    self.buttons = []

    for i in range(5):
        numberLabel = random.randint(-1000,1000)
        self.buttons.append(Button(str(numberLabel), self))
        self.buttons[i].setFixedSize(160, 80)
        self.buttons[i].move(moveButton,200)
        moveButton = moveButton + 160
        self.buttons[i].show()

    print(self.buttons)

当我尝试打印列表时,我得到了......

[<__main__.Frame object at 0x10b1d25f0>, <__main__.Frame object at 0x10b1d2680>, <__main__.Frame object at 0x10b1d2710>, <__main__.Frame object at 0x10b1d27a0>, <__main__.Frame object at 0x10b1d2830>]

相反,我希望整数在列表中打印! 任何帮助将非常感谢,TIA

2 个答案:

答案 0 :(得分:0)

你可以尝试:

print (button.numberLabel for button in self.buttons)

我希望这对你有所帮助。

答案 1 :(得分:0)

输出正确。基本上你用print语句做的是打印“self.buttons”列表中的项目,这些项目恰好是Button类的对象。

您指定使用PyQT4框架,如果我错了,请更正我,但PyQT4不包含名为“Button”的类。假设您使用“import ... as”选项而不是“Button”表示“QPushButton”,则需要更改代码的最后一行:

   for i in range(5):
        numberLabel = random.randint(-1000,1000)
        self.buttons.append(Button(str(numberLabel), self))
        self.buttons[i].setFixedSize(160, 80)
        self.buttons[i].move(moveButton,200)
        moveButton = moveButton + 160
        self.buttons[i].show()

   print(self.buttons)

要:

   for i in range(5):
        numberLabel = random.randint(-1000,1000)
        self.buttons.append(Button(str(numberLabel), self))
        self.buttons[i].setFixedSize(160, 80)
        self.buttons[i].move(moveButton,200)
        moveButton = moveButton + 160
        self.buttons[i].show()
        print(self.buttons[i].text())

这样就不会在内存中打印对象的位置,而是打印text()函数的返回值。