transfers = [['owen', 'susan', '10'], ['owen', 'robert', '10'], ['owen','drew', '10'], ['fred', 'owen', '20']]
people = ['drew', 'fred', 'owen', 'robert', 'susan']
bals = [0]*len(people)
for p in people:
bals[k for k in range(len(people))] = [i[2] for i in transfers if p in i]
^
SyntaxError: invalid syntax
为什么我会犯这个错误
i[2]因为i in transfers应该是“transfers”列表中的数字,我只希望它是包含循环中某个人(p)的名字的列表中的数字
应该是的
或者
bals = [[t[2] for t in transfers if p in t] for p in people]
您的代码无法工作,因为列表订阅不接受列表理解
此外,列表订阅不接受
generator
。把列表理解放在括号里,就形成了一个生成器。语法方面的正确代码可以是bals[(k for k in range(len(people)))]
,中间是generator
对象。但是生成器仍然不能与list一起工作,因此是一个TypeError
相关问题 更多 >
编程相关推荐