Python - TypeError:不可用的类型列表错误

Ant*_*yrd -1 python list-comprehension

我正在尝试创建一个理解,它将列表中的每个值n都返回并返回1-n中的值.IE [1,2,4]应该是返回的[[1],[1,2],[1,2,3,4]].我的代码收到此unhashable type list错误.

 {range(x) for x in {1,2,4}}
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 6

大括号 -{}创建一组传递给它的元素.要创建列表,您需要使用括号 -[]

[range(x) for x in [1,2,4]]
Run Code Online (Sandbox Code Playgroud)

要获得所需的输出,您需要range()稍微改变一下.range(2)会给你[0, 1]而不是[1, 2].

您可以使用:

>>> [range(1, x+1) for x in [1, 2, 4]]
[[1], [1, 2], [1, 2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

  • @布赖恩.是的,只有当您以`key:value`对的形式传递元素时.`{1,2,3}`创建一个`set([1,2,3])`,而`{"a":1,"b":2}`创建一个dict. (2认同)