J'ai ce tableau:
lst2= [('A', 'D'), ('B', 'D'), ('C', 'D')]
Comment pourrais-je ajouter une chaîne «D» à chaque élément et convertir chaque ensemble en tant que tuple:
lst = ['A', 'B', 'C']
6 Réponses :
list2 = [(i, 'D') for i in list] (apart from the fact that list is a very bad variable name)
Comme ça, en utilisant une compréhension de liste :
lst = ['A', 'B', 'C'] lst2 = [(x, 'D') for x in lst] lst2 => [('A', 'D'), ('B', 'D'), ('C', 'D')]
Au fait, c'est une mauvaise idée d'appeler une variable list
, qui se heurte à une fonction intégrée. Je l'ai renommé.
Une autre option utilisant zip:
x = ['A', 'B', 'C'] res = list(zip(x,'D'*len(x)))
Une autre solution consiste à utiliser zip_longest
[('A', 'D'), ('B', 'D'), ('C', 'D')]
le résultat sera:
from itertools import zip_longest list(zip_longest(['A', 'B', 'C'], [], fillvalue='D'))
list1 = ['A', 'B', 'C'] list2 = [] for i in list1: list2.append((i, 'D')) print(list2)
Vous pouvez utiliser la fonction product()
:
from itertools import product lst = ['A', 'B', 'C'] list(product(lst, 'D')) # [('A', 'D'), ('B', 'D'), ('C', 'D')]
list2 = [(e, 'D') pour e dans la liste]
Le dernier est-il censé être
('C', 'D')
? Et qu'avez-vous essayé? Pour quoi avez-vous spécifiquement besoin d'aide?('A', 'D')
n'est pas du tout une sous-liste. C'est un tuple.Merci, je vais faire les corrections.
Une autre façon:
[tuple (x + 'D') for x in lst]
(en supposant que tous les éléments de votre liste sont des chaînes)