Comment puis-je supprimer un objet du tableau en python?

Je veux sélectionner un msgID et je veux supprimer cet objet complet avec le nom d'utilisateur, msg, time_stamp (tout cela).

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'} ]

Comme si je sélectionne 'msgID': 3 après avoir supprimé le 'msgID': 3, le tableau devrait aimer ceci

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'}
]

Est-ce possible? Je ne trouve pas x avec ce msgID room_msg[x].

0
Najmus Sakib 1 juin 2020 à 00:45

6 réponses

Meilleure réponse

Ce code simple devrait le faire:

desired_id = 3  # example id

for i, msg in enumerate(room_msg):
    if msg['msgID'] == desired_id:
        del room_msg[i]
0
snatchysquid 31 mai 2020 à 21:52

Pour supprimer un objet d'un tableau en python, utilisez

del arr["index"]
0
Damnik Jain 31 mai 2020 à 22:22

Vous pouvez utiliser la compréhension de liste:

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

from pprint import pprint
pprint(room_msg)

Tirages:

[{'msg': 'msg1',
  'msgID': 1,
  'time_stamp': 'May-31 05:29PM',
  'username': 'User1'},
 {'msg': 'msg2',
  'msgID': 2,
  'time_stamp': 'May-31 05:29PM',
  'username': 'User2'}]
0
Andrej Kesely 31 mai 2020 à 21:50

Cela pourrait être un moyen - ou vous utilisez le msgID comme Ident pour imbriqué - que vous pouvez effacer avec del room_msg [msg]

def search_and_delete(msg):
    count = 0
    for x in room_msg:
        if x['msgID'] == msg:
            room_msg.pop(count)
        count+=1
0
Sonikk 31 mai 2020 à 21:54

Essayez d'utiliser del sur les indices de tableau correspondants.

for index, msg in enumerate(room_msg):
    if msg['msgID'] == 3:
        del room_msg[index]
0
Heitor Chang 31 mai 2020 à 21:50

Veuillez voir l'image. J'ai un problème en ajoutant le code ici au bon format.

https://i.stack.imgur.com/vFRqZ.png

0
ignite246 31 mai 2020 à 22:34