2017-03-12 2 views
0

La question du débutant.Python: remplace la liste imbriquée par un seul chiffre

je la liste ordonnée suivant des listes imbriquées,

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 

Je voudrais remplacer la liste imbriquée [ « Non », « se », « admiten »] par un seul chiffre à dire que je veux obtenir le résultat suivant,

required_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], 'i'] 

où i est n'importe quel chiffre. Comme la liste d'origine actuelle est plus longue et contient plus de listes imbriquées que celle que j'ai donnée plus haut, je veux remplacer les commandes '' No '', 'se', 'admiten'] par une commande 'texte reconnaissant'. Quelque chose comme,

[if nested list contains 'No', 'se', 'admiten', replace by i] 

telle que je peux remplacer les listes imbriquées comprenant de tout nombre d'éléments de chaîne par un seul chiffre.

+0

'original_list [-1] i'' » =? – zvone

+0

Vous devez préciser * ce que * vous voulez faire et * pourquoi *. Nous avons besoin du contexte. – skrx

+0

Vous avez raison. Ma faute. J'ai édité la question. J'espère que c'est plus clair maintenant. – LucSpan

Répondre

0

éléments de la liste qui sont des listes peuvent être traitées comme éléments de la liste qui ne sont pas des listes et des conclusions et le remplacement d'un élément de la liste peut être facilement fait en utilisant un list comprehension:

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 
item_to_replace = ['No', 'se', 'admiten'] 

required_list = ['i' if x == item_to_replace else x for x in original_list] 
+0

Merci pour votre aide! – LucSpan

0

Je suppose que vous voulez faire ceci:

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 

i = original_list[2] 

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], i] 
+0

@LucSpan vérifier ma version modifiée. –

+0

Mes excuses Ramesh, ce n'est pas exactement ce que je voulais. Néanmoins, merci de penser avec moi. J'ai réalisé que la version originale de ma question manquait de détails suffisants. J'ai élaboré un peu sur ce que je veux. – LucSpan

0

original_list = [[ 'Non', 'se', 'puede'], [ 'Non', 'se', 'puede'], [ 'Non', 'se', ' admettre ']]

replace_value = [' Non ',' se ',' admettre ']

pour i, j à énumérer (original_list):

if replace_value == j: 
    original_list[i] = 2 

impression original_list

+0

Merci pour votre aide! – LucSpan