如何在python中从数组中删除对象?

2024-06-28 12:11:00 发布

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

如何在python中从数组中删除对象

我想选择一个msgID,并想删除带有用户名、msg、时间戳(全部)的完整对象

room_msg =  [
 {
  'msgID': 1, 
  'username': 'User1',
  'msg': 'msg1', 
  'time_stamp': 'May-31 05:29PM'},
 {
  'msgID': 2,
  'username': 'User2', 
  'msg': 'msg2', 
  'time_stamp': 'May-31 05:29PM'},
{
  'msgID': 3, 
  'username': 'User3', 
  'msg': 'msg3', 
  'time_stamp': 'May-31 05:29PM'} ]

就像我选择'msgID': 3 删除'msgID': 3之后,数组应该是这样的

room_msg = [
 {
  'msgID': 1, 
  'username': 'User1',
  'msg': 'msg1', 
  'time_stamp': 'May-31 05:29PM'},
 {
  'msgID': 2,
  'username': 'User2', 
  'msg': 'msg2', 
  'time_stamp': 'May-31 05:29PM'}
]

可能吗? 我找不到带有该msgIDroom_msg[x]的x


Tags: 对象timestamp时间usernamemsg数组may
3条回答

尝试在匹配的数组索引上使用del

for index, msg in enumerate(room_msg):
    if msg['msgID'] == 3:
        del room_msg[index]

这段简单的代码应该可以做到这一点:

desired_id = 3  # example id

for i, msg in enumerate(room_msg):
    if msg['msgID'] == desired_id:
        del room_msg[i]

您可以使用列表理解:

room_msg = [m for m in room_msg if m['msgID'] != 3]

from pprint import pprint
pprint(room_msg)

印刷品:

[{'msg': 'msg1',
  'msgID': 1,
  'time_stamp': 'May-31 05:29PM',
  'username': 'User1'},
 {'msg': 'msg2',
  'msgID': 2,
  'time_stamp': 'May-31 05:29PM',
  'username': 'User2'}]

相关问题 更多 >