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

在Python中使用[]和list()之间的区别

陶刚豪
2023-03-14
问题内容

有人可以解释这个代码吗?

l3 = [ {'from': 55, 'till': 55, 'interest': 15}, ]
l4 = list( {'from': 55, 'till': 55, 'interest': 15}, )

print l3, type(l3)
print l4, type(l4)

输出:

[{'till': 55, 'from': 55, 'interest': 15}] <type 'list'>
['till', 'from', 'interest'] <type 'list'>

问题答案:

dict对象转换为列表时,它仅使用键。

但是,如果用方括号将其包围,则所有内容都将保持不变,只会使其成为dicts的列表,其中仅包含一项。

>>> obj = {1: 2, 3: 4, 5: 6, 7: 8}
>>> list(obj)
[1, 3, 5, 7]
>>> [obj]
[{1: 2, 3: 4, 5: 6, 7: 8}]
>>>

这是因为,当您使用循环for遍历时,它也只使用了键:

>>> for k in obj:
...     print k
... 
1
3
5
7
>>>

但是,如果要获取键 值,请使用.items()

>>> list(obj.items())
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>>

使用for循环:

>>> for k, v in obj.items():
...     print k, v
... 
1 2
3 4
5 6
7 8
>>>

但是,当您输入时list.__doc__,它会为您提供[].__doc__

>>> print list.__doc__
list() -> new list
list(sequence) -> new list initialized from sequence's items
>>> 
>>> print [].__doc__
list() -> new list
list(sequence) -> new list initialized from sequence's items
>>>

有点误导:)



 类似资料:
  • 问题内容: Java Generic type:之间有什么区别 根据我的理解 (1) 是具有超类“ Number”的“未知”数据类型的只读列表。我们只能读取元素,但不能添加 (2) 具有超类“ Number”的数据类型列表。我们可以 阅读并将 元素 添加 到列表中 请参见下面的代码示例 当我尝试将Integer(甚至Number对象)添加到sumOfList2时,出现错误。请在这里说明问题是什么?

  • 问题内容: 我以为和列表上的“ + =”基本上可以做同样的事情-扩展列表而不创建新列表。 我希望可以打印以下代码,但是 为什么我收到此错误?区别在哪里? 我在python2.7.3和python3.4.0中进行了尝试。 问题答案: 使对象有 机会 就地更改对象。但这取决于的类型,这并不意味着对象已就地更改。 这样, 仍然需要重新分配 给;要么返回或新对象返回; 确实翻译成: 由于包含作业,因此在中

  • 本文向大家介绍C和Python之间的区别,包括了C和Python之间的区别的使用技巧和注意事项,需要的朋友参考一下 C和Python都是主要使用的编程语言。各种特性使它们在程序设计领域流行。根据这些特征,我们可以区分C和Python。 以下是C和Python之间的重要区别。 序号 键 C语言 Python语言 定义 Python是一种通用的解释型,交互式,面向对象的高级编程语言。 类型 另一方面,

  • 本文向大家介绍Python和Bash之间的区别,包括了Python和Bash之间的区别的使用技巧和注意事项,需要的朋友参考一下 Python Python是一种编程语言,旨在易于实现和易于理解。它是一种动态类型的语言。它不使用指针。 重击 Bash是命令行解释器,默认情况下在Linux和MacOS操作系统中提供。它也可以安装在其他操作系统中。它是Linux和MacOS的默认用户外壳程序。 以下是P

  • 本文向大家介绍C#中IEnumerable、ICollection、IList、List之间的区别,包括了C#中IEnumerable、ICollection、IList、List之间的区别的使用技巧和注意事项,需要的朋友参考一下 首先我看看 IEnumerable: IEnumerable<T> 实现IEnumerable接口方法,那IEnumberable做什么的,其实就提高可以循环访问的集合

  • 问题内容: 我可以给模块中的变量赋值吗?如果是,则类和模块之间有什么区别? PS:我是一个Java专家(以防它有助于解释)。谢谢。 问题答案: 模块 : 模块是包含Python定义和语句的文件。 正如医生所说。 因此,python中的模块只是组织代码的一种简单方式,它包含python类或仅包含函数。如果您在项目中需要这些类或函数,则只需它们。例如,python中的模块仅包含一堆函数,而您只需调用所