当前位置: 首页 > 面试题库 >

Python:单个可迭代`list(x)`与`[x]`的列表

洪开诚
2023-03-14
问题内容

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']

问题答案:

[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迭代器与可迭代与生成器,包括了Python迭代器与可迭代与生成器的使用技巧和注意事项,需要的朋友参考一下 示例 一个迭代是一个对象,可以返回一个迭代器。具有状态且具有__iter__  方法并返回迭代器的任何对象都是可迭代的。也可能是没有状态的对象,该对象实现了__getitem__方法。-该方法可以获取索引(从零开始),并IndexError在索引不再有效时引发。 Py

  • 问题内容: 使用math.pow或**运算符哪个更有效?我什么时候应该使用另一个? 到目前为止,我知道可以返回一个或一个,如果您使用小数,该函数将返回一个浮点数 问题答案: 使用Power运算符将更快,因为它不会产生函数调用的开销。如果您反汇编Python代码,则可以看到以下内容: 请注意,我在这里使用变量作为指数,因为类似常数的表达式实际上是在编译时求值的。 现在,实际上,这种差异并不重要,正如

  • 问题内容: 每次我运行该程序时,都会出现以下错误: 每当有人被螺栓击中时,我都试图降低其健康状况。如果一个外星人的健康状况良好,也应该予以销毁。同样,螺栓也会被破坏。这是我的代码: 在上线情况。为了澄清,和都是字典列表。 我究竟做错了什么? 问题答案: 您不应从正在循环的列表中删除项目。而是创建一个副本: 和 循环访问列表时修改列表会影响循环: 从要遍历两次的列表中删除项目会使事情变得更加复杂,从

  • 本文向大家介绍Python遍历整个可迭代,包括了Python遍历整个可迭代的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 这是我用AWS X-Ray编写的Python代码 没有错误,但它没有向X射线守护程序发送任何内容。 此代码中缺少什么?

  • 问题内容: 我的代码中有这个 Eclipse告诉我使用静态 相反,为什么呢?有什么区别,这两种方法之间的功能是否完全不同? 问题答案: 只有一种方法,而不是两种,它是静态的。虽然您可以通过实例引用调用静态方法,但这不是很好的样式。它表明程序员认为他或她正在调用实例方法。一个困惑的程序员可能会认为他或她可以使另一个线程(不是当前线程)以这种方式进入睡眠状态,而这并不是这样做的。 您的两行代码都做同样