2017-10-14 1 views
-1

Disons que j'ai 2 ensembles de listes.comment transformer un ensemble avec 5 éléments en 5 ensembles chacun avec un élément en python?

set1 = [2, 4, 6, 8, 10] 
set2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

De là, j'ai essayé de soustraire set1 de set2 afin d'obtenir [1, 3, 5, 7, 9], et je l'ai fait en disant impression [x for x in set2 if x not in set1] La sortie est juste set2, parce qu'il n'y a qu'un seul élément dans le jeu 2, et c'est la liste de tous les nombres naturels jusqu'à et y compris 10.

Donc ma question est comment puis-je transformer [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] en [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]? Je sais que c'est une question de base, mais je suis nouveau et je n'ai pas pu trouver d'autres questions comme celle-ci. S'il vous plaît répondez avec des réponses qui aident en général et pas seulement dans cette situation. Merci d'avance.

+0

Ce n'est pas un ensemble, c'est une liste ... –

+1

'[[x] pour x dans les données]'. –

+1

Pourquoi dites-vous qu'il n'y a qu'un seul élément dans 'set2'? Vous avez défini 'set2' avec' set2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] '. – Matthias

Répondre

0

vous pouvez utiliser des ensembles pour résoudre le problème posé

set1 = [2, 4, 6, 8, 10] 
set2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

set(set2) - set(set1) 

Out[18]: {1, 3, 5, 7, 9} 

la compréhension de la liste fonctionne aussi, avez-vous un résultat différent?

[e for e in set2 if e not in set1] 

Out[17]: [1, 3, 5, 7, 9] 
0

Vous pouvez essayer ceci:

s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
new_s = [[i] for i in s] 

Sortie:

[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]