2
我正在開發一個貨幣系統的Python Twitch IRC Bot。每分鐘,我爲用戶的「平衡」添加一點。但是,每當我運行腳本時,我在控制檯中都會收到一個TypeError
。它說TypeError: 'int' object is not iterable
,我不知道如何解決它,我不知道問題是什麼,因爲它在早期工作得很好。這裏是我的代碼:Python - 列表迭代錯誤
userlist = [open('userlist.txt').read()]
balances = [open('balances.txt').read()]
def loadusers():
global userlist
userlist = [map(str, userlist[0].split(", "))]
def loadbalances():
global balances
balances = [map(int, balances[0].split(", "))]
def savelist(path, listname):
with open(path, 'w') as text_file:
text_file.write(re.sub('[\'\[\]]', '', str(listname)))
loadusers()
loadbalances()
def givePoints():
num = 0
for users in balances:
balances[num] += 1
num += 1
threading.Timer(60.0, givePoints).start()
我得到的錯誤信息爲balances[num] += 1
。
在此先感謝您的幫助!
我不明白你會如何得到你描述的錯誤。我期望一些其他問題(比如'IndexError'),因爲你正在製作一堆非常奇怪的列表。不要隨便在任何東西上隨便方括號括起來!無論如何,你確定你得到了你所描述的TypeError嗎? – Blckknght
map()返回一個地圖對象,所以'balances'被分配一個包含一個地圖對象的列表(你不能加1)。將它改爲'balances = list(map(int,balances [0] .split(「,」))),它似乎工作。至少'balances [num]'將是一個整數,就像你期待的那樣(我認爲)。 – jfsturtz
@jfsturtz在python 2中,'map'返回一個列表。 – tdelaney