2
votes

Ajouter une colonne à un tableau

J'ai un tableau en Python que j'ai lu à partir d'un fichier texte:

[["CAR", "Engine"], ["CAR", "Gearbox"], ["CAR", "Tires"], ["CAR", "Battery"]]

Je voudrais en faire un tableau multidimensionnel et ajouter une étiquette d'identification, par exemple CAR. Le résultat devrait ressembler à ceci:

["Engine", "Gearbox", "Tires", "Battery"]

Quelle est la manière la plus rapide et la plus simple d'y parvenir?


3 commentaires

[...] est une liste et non un tableau. Lequel souhaitez-vous utiliser? les tableaux nécessitent une bibliothèque (comme numpy) afaik


la dernière option de ma réponse devrait être la plus lente, faites-moi savoir si vous l'avez testée!


Merci beaucoup. J'ai pris la première option. Mais vous avez raison, je devrais peut-être vérifier lequel est le plus rapide. Btw, ce serait une question de suivi cool.


3 Réponses :


4
votes

Utiliser une compréhension de liste serait un moyen assez rapide et simple.

lis = ["Engine", "Gearbox", "Tires", "Battery"]
new_list = [["CAR", x] for x in lis]


0 commentaires

2
votes

Essayez ceci en une seule ligne:

[['car', 'Engine'], ['car', 'Gearbox'], ['car', 'Tires'], ['car', 'Battery']]      

Le résultat sera:

l = ["Engine", "Gearbox", "Tires", "Battery"]                                                                                                                                                                                                                                     

result = [["CAR", i] for i in l]


0 commentaires

1
votes

Soyez très prudent! cette variable ne contient pas de tableau, contient une liste. (python ne prend pas en charge les tableaux par défaut). cela devrait être la réponse à votre question

utiliser la compréhension de liste - la manière la plus "pythonique" de le faire

[['CAR', 'Engine'], ['CAR', 'Gearbox'], ['CAR', 'Tires'], ['CAR', 'Battery']]
l = ["Engine", "Gearbox", "Tires", "Battery"]
f = lambda x: ['CAR', x]
result = list(map(f,l))
print(result)

utiliser une boucle for - le moyen le plus simple de le faire

[["CAR", "Engine"], ["CAR", "Gearbox"], ["CAR", "Tires"], ["CAR", "Battery"]]
l,result = ["Engine", "Gearbox", "Tires", "Battery"],list()
for i in l:
   result.append(['CAR',i])
print(result)

utilisez map () - le moyen le plus cool de le faire

[["CAR", "Engine"], ["CAR", "Gearbox"], ["CAR", "Tires"], ["CAR", "Battery"]]
l = ["Engine", "Gearbox", "Tires", "Battery"]
result = [['CAR',i] for i in l]
print(result) 


0 commentaires