微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:单个可迭代`listx`与`[x]`的列表

如何解决Python:单个可迭代`listx`与`[x]`的列表

[x]是包含 的列表x

list(x)接受x(必须已经可以 !)并将其转换为列表。

>>> [1]  # list literal
[1]
>>> ['abc']  # list containing 'abc'
['abc']
>>> list(1)
# TypeError
>>> list((1,))  # list constructor
[1]
>>> list('abc')  # strings are iterables
['a', 'b', 'c']  # turns string into list!

列表构造函数list(...)-像python的所有内置集合类型(集合,列表,元组,collections.deque等)一样- 可以采用一个可迭代的参数并将其转换。

解决方法

Python似乎在创建列表对象[x]list(x)何时创建列表对象之间有所区别x。为什么会有这种差异?

>>> a = [dict(a = 1)]
>>> [{'a' : 1}]

>>> a = list(dict(a=1))
>>> a = ['a']

虽然第一个表达式似乎按预期工作,但第二个表达式的工作方式更像是迭代dict:

>>> l = []
>>> for e in {'a' :1}:
        l.append(e)
>>> l
>>> ['a']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。