J'ai un tableau 2D comme celui-ci:Déposez un élément d'une liste (drop ligne de la liste des listes)
list_of_data = [
['Joe', 4, 4, 4, 5, 'cabbage', None],
['Joe', 43, '2TM', 41, 53, 'cabbage', None],
['Joe', 24, 34, 44, 55, 'cabbage', None],
['Joe', 54, 37, 42, 85, 'cabbage', None],
['Tom', 7, '2TM', 4, 52, 'cabbage', None],
['Tom', 4, 24, 43, 52, 'cabbage', None],
['Tom', 4, 4, 4, 5, 'cabbage', None],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
]
Je suis intéressé par les lignes contenant la valeur '2TM'
à son 2ème indice. Par exemple:
- Joe a la valeur
'2TM'
à l'index 2 dans la 2ème apparition de ses données. - Tom a la valeur
'2TM'
à l'index 2 lors de la première apparition de ses données.
Chaque fois que la valeur '2TM'
apparaît dans les données, je veux supprimer les deux lignes suivantes. L'exemple ci-dessus deviendrait le suivant:
list_of_data =
['Joe', 4, 4, 4, 5, 'cabbage', None],
['Joe', 43, '2TM', 41, 53, 'cabbage', None],
['Tom', 7, '2TM', 4, 52, 'cabbage', None],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
['Fred', 4, 4, 4, 5, 6, 'cabbage'],
]
J'ai essayé d'utiliser list.pop
comme ceci:
for row[x] in list_of_data:
if '2TM' in row:
list_of_data.pop[x+1:x+2]
'list.pop' échouera s'il n'y a pas deux lignes (ou même une) après la ligne contenant' '2TM''. Par exemple, si la dernière ligne (ou l'avant-dernière) de 'list_of_data' contenait un« 2TM »,' list.pop' soulèverait une exception. –
Il a mentionné que les deux prochaines lignes doivent être supprimées. Bien qu'une vérification puisse être appliquée pour les dernières lignes –
@ZachGates Je comprends votre objection ici. Et à des fins générales, vous avez raison: cette méthode soulèverait une objection dans le scénario que vous décrivez. Cependant, la nature inhérente/unique de mon ensemble de données est que chaque fois que 2TM apparaît dans mes données, il y a toujours 2 lignes à supprimer. Donc, cette méthode .pop a effectivement fonctionné pour mes données, même si elle ne fonctionne pas à des fins générales. – TJE