python - 如何更改所有子列表的特定索引处的元素?

标签 python python-3.x list list-comprehension

我有一个这样的列表:[[1, 2, 3], [4, 5, 6]]

我想使用列表理解将其更改为 [[1, None, 3], [4, None, 6]]

我已经尝试过:

print(list(x[1] = None for x in [[1, 2, 3], [4, 5, 6]]))

这会引发错误SyntaxError:表达式不能包含赋值,也许您的意思是“==”

我也尝试过:

print(list(x1 for x in [[1, 2, 3], [4, 5, 6]] for x1 in x))

但这只是给出了[1, 2, 3, 4, 5, 6]

我想了大约1个小时,有人知道如何将我的代码输出更改为[[1, None, 3], [4, None, 6]]

最佳答案

问题中显示的数据是一个由 2 个子列表组成的列表,每个子列表有 3 个元素。

我们假设它是每个子列表中的第二个值,应该用 None 替换,并且子列表的长度可能会有所不同。在这种情况下:

_list = [[1,2,3],[4,5,6]]

new_list = [[x, None, *y] for x, _, *y in _list]

print(new_list)

输出:

[[1, None, 3], [4, None, 6]]

现在让我们将数据更改为:

_list = [[1, 2, 3], [4, 5, 6, 7]]

...那么将生成相同的列表理解:

[[1, None, 3], [4, None, 6, 7]]

注意:

如果任何子列表包含的元素少于 2 个,则此操作将会失败

关于python - 如何更改所有子列表的特定索引处的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75172738/

相关文章:

Python 追加列表并停止它

list - 在 R 中,如何按组件组合两个具有相同名称的组件列表?

python - 当我安装了 OS X 10.11 时,为什么 pip 会为 OS X 10.12 安装 Pillow?

python - Django - 对象级权限和基于类的通用 View

Python 脚本在 IDLE 中执行时有效,但在控制台中无效

python - 如何在 pyglet 中制作 3D?

python - Spyder 未启动

python - 如何保存循环中子进程的输出(json 文件)

python - 寻找零和的三元组

python - 复制列表值并将新列添加到数据框