0 python int iterable object typeerror
我正在教自己Python 3.2,我正在尝试创建一个匹配名单的程序.pList是一个多维列表,第0列为字符串,第1列为整数,第2列为布尔值.但是,每当我尝试调用此函数时(只有在列表中的行数为偶数时才会运行),我得到一个TypeError.
Traceback (most recent call last):
File "C:\Users\METC\Dropbox\assassins.py", line 150, in <module>
main()
File "C:\Users\METC\Dropbox\assassins.py", line 11, in main
update(ops, pList)
File "C:\Users\METC\Dropbox\assassins.py", line 125, in update
b = match(pList)
File "C:\Users\METC\Dropbox\assassins.py", line 47, in match
q, p = 0
TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,但请记住,我是一个语言的初学者,所以要温柔.:)我不介意你是否太技术了; 我有计算机科学的经验.
def match(pList):
b = []
z = len(pList)-1
for x in range(z):
b.append([pList[x][0],0])
for x in range(z):
isValid = False
q, p = 0
while isValid == False:
q = random.randint(0, z)
print('q is ' + str(q))
if q > z:
isValid = False
elif q < 0:
isValid = False
elif pList[q][1] == True:
isValid = False
else:
isValid = True
isMatch = False
while isMatch == False:
if pList[q][1] == False:
isValid = False
while isValid == False:
p = random.randint(0,z)
print('p is ' + str(p))
if p > z:
isValid = False
elif p < 0:
isValid = False
elif pList[p][2] == True:
isValid = False
else:
if q == p:
isValid = False
else:
isValid = True
print('match valid')
b[q][1] = pList[p][0]
isMatch = True
print('')
return b
Run Code Online (Sandbox Code Playgroud)
这是你的构造:
q, p = 0
Run Code Online (Sandbox Code Playgroud)
它试图通过迭代来解压缩单个int.这不是有效的Python语法.我想错误可能更好.
使用:
q = p = 0
Run Code Online (Sandbox Code Playgroud)
代替.