python 转换设置为列出奇怪的列表行为

标签 python

我一定是遗漏了什么,因为这很奇怪......

a = ['a', 'b', 'c']
a1 = ['b', 'a']
foo = list( set(a) - set(a1))

** 返回 **

foo == ['c']
type(foo) == <type 'list'>
foo[0] == 'c'

** 现在是奇怪的部分 **

foo = foo.insert(0, 'z')
foo == None

为什么像插入和追加这样的列表操作会导致 foo 为 None?

以下实现了我的顶级示例尝试但看起来很荒谬的事情。

import itertools

a = ['a', 'b', 'c']
a1 = ['b', 'a']

foo = list(set(a) - set(a1))
q = [['z']]
q.append(foo)
q = [i for i in itertools.chain.from_iterable(q)]
q == ['z', 'c']

任何见解将不胜感激。 谢谢。

最佳答案

foo.insert() 返回 None,但确实以您期望的方式更改了 foo :

>>> foo = ['c']
>>> foo.insert(0, 'z')
>>> foo
['z', 'c']

如果您希望将结果分配给不同的变量,这是一种方法:

>>> foo = ['c']
>>> bar = ['z'] + foo
>>> bar
['z', 'c']

关于python 转换设置为列出奇怪的列表行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711588/

相关文章:

python - 尝试使用opencv分割字符 - 照明问题

python - Cython 元类.pxd : How should I implement `__eq__()` ?

python - PyQt QSqlQuery.prepare() 返回 false

python - Python 中两个对象之间的和/或运算符

Php 和 python 正则表达式的区别?

python - Jupyter requests.get 返回不完整的 html

python - Python 中的大型 Web 数据集 - 如何处理非常大的数组?

python - Pandas 可以使用列表进行 groupby 吗?

python - 从深层嵌套列表/元组中提取元素的递归函数

python - 在一个 lambda 函数中转换两个 for 循环方法