执行以下操作的最有效方法是什么:
genres = [value_from_key(wb, 'Genre (1)', n),
value_from_key(wb, 'Genre (2)', n),
value_from_key(wb, 'Genre (3)', n),
value_from_key(wb, 'Genre (4)', n),]
我尝试使用列表解析 - genres = [value_from_key(wb, 'Genre (%s)'%(i), n) for i in range[1,4]]
,但它一直引发一个TypeError,说对象是unsubscriptable。干嘛做这件事的方法是什么?谢谢。
答案 0 :(得分:5)
在对[1,4]
的调用中用圆括号(1,4)
替换方括号range
:
genres = [value_from_key(wb, 'Genre (%s)'%(i), n) for i in range(1,4)]
答案 1 :(得分:2)
但是它一直引发一个TypeError,说对象是unsubscriptable。
因为range[1,4]
表示“使用元组(1, 4)
作为range
的下标”。由于range
是一个函数,你想调用它,即将参数放在括号中(就像你对value_from_key
所做的那样)。我真的没有看到你如何从这样的错误中得出结论,列表理解本身有问题。 O_O
干嘛做这件事的方法是什么?
列表理解。