我正在尝试创建一个理解,它在列表中获取每个值n并返回1-n中的值。
I.E.对于[1,2,4]
,返回值应为[[1],[1,2],[1,2,3,4]]
。
我的代码收到此unhashable type list
错误。
{range(x) for x in {1,2,4}}
答案 0 :(得分:6)
大括号 - {}
会创建一个传递给它的元素集。要创建列表,您需要使用括号 - []
[range(x) for x in [1,2,4]]
要获得所需的输出,您需要稍微更改range()
。 range(2)
会为您[0, 1]
而不是[1, 2]
。
您可以使用:
>>> [range(1, x+1) for x in [1, 2, 4]]
[[1], [1, 2], [1, 2, 3, 4]]