删除列表元素而不进行更改

2024-05-15 16:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设你有一个清单

>>> m = ['a','b','c']

我想创建一个新的列表n,它包含除了m中给定项之外的所有内容(例如项'a')。但是,当我使用

>>> m.remove('a')
>>> m
m = ['b', 'c']

原始列表发生了变化(值'a'从原始列表中移除)。有没有办法在不改变原始列表的情况下获得新的列表sans-'a'?所以我的意思是m仍然应该是[ 'a', 'b', 'c' ],我将得到一个新的列表,它必须是[ 'b', 'c' ]


Tags: 内容列表情况remove办法sans
1条回答
网友
1楼 · 发布于 2024-05-15 16:22:27

我假设您的意思是希望创建一个没有给定元素的新列表,而不是更改原始列表。一种方法是使用列表理解:

m = ['a', 'b', 'c']
n = [x for x in m if x != 'a']

n现在是m的副本,但没有'a'元素。

另一种方法当然是先复制列表

m = ['a', 'b', 'c']
n = m[:]
n.remove('a')

如果按索引删除值,则更简单

n = m[:index] + m[index+1:]

相关问题 更多 >