problème strong> J'essaie de surprenante, TypeError: Type indatériel: 'Liste' P>
BlockQuote> Effort de recherche: strong> P> Voici d'autres moyens d'avoir essayé de ajouter () code> éléments dans un jeu d'exécution à l'aide de A pour boucle: p>
l1 code> est un ensemble mais, quand je vais sur
ajouter () code> -ing -ing éléments à mon ensemble
l2 code> dans un boucle que je reçois: p>
Ajouter () code> éléments pour définir
l2 et a échoué: p>
{{1,2,3,4,5},{100,11,12}}
3 Réponses :
Depuis SET.ADD CODE> A> accepte uniquement comme élément unique, pas un iérent, vous pouvez boucler sur le Carte Code> et ajoutez chaque élément individuellement
l2 = set()
l2.update(*[map(int, input().split()) for i in range(n)])
Votre approche fonctionne bien. Mais ce que je cherchais était peut-être si je pouvais le faire comme un ensemble d'ensembles.
Comme l'appendez des ensembles avec des entrées d'exécution dans L2. {{....}, {...}, {....}, .... {...}}
J'ai essayé vos modifications et je ne suis toujours pas capable de le voir comme un ensemble d'ensembles. N'hésitez pas à répondre à vos confusions que je suis prêt à vous aider avec cela.
@mishx. Montrer la production attendue dans chaque partie de la question.
J'ai ajouté la sortie attendue
@mishsx. Cela aide plus que la prose. Je suis allé de l'avant et j'ai ajouté une deuxième réponse distincte à votre question.
Espérons que cela vous aide.
l1 = set(map(int, input('Enter first set: ').split())) print(l1) n = int(input('Enter n: ')) l2 = list() for i in range(n): l2.append(set(set(map(int, input(f'Enter {i + 2}rd set: ').split())))) print(l2) # [{1,2,3,4,5},{100,11,12}]
en Python, vous ne pouvez pas avoir défini de listes p> li>
Utilisez l'opérateur de fusion au lieu d'ajouter p> li>
Le Ensemble d'ensembles mathématiquement est l'intersection des ensembles. P> li>
Vous pouvez avoir une liste de jeux mais aucun jeu d'ensembles. Donc, {{1,2,3,4,5}, {100,11,12}} code> expression est à la fois mathématiquement et la programmation incorrecte. p> li >
l2 code> devrait être la liste non définie.Pe est le code pour créer une liste des ensembles. P>
Je vais essayer ça maintenant et te laissera savoir
J'apprécie votre solution, mais cela me donne un ensemble avec des éléments consolidés des ensembles que je donne en entrée. J'ai joint une clarification sur mon post. N'hésitez pas à résoudre les doutes que vous avez encore.
Bleu Vous êtes correct sur la partie où il est illogique et mathématiquement de faire un ensemble d'ensembles. Mais avec gelenget (), j'ai pu. J'apprécie votre solution élégante et je vais renvoyer la même chose, car je vais toujours rencontrer dans une affaire pour effectuer une liste des ensembles.
Depuis que je réponds maintenant à une question essentiellement différente, je pose une deuxième réponse.
A définir code>
est mutable et donc indestible. Les objets mutables peuvent mettre en œuvre une fonction de hachage, mais les intégrés ne doivent généralement pas éviter les problèmes. Au lieu d'utiliser un définir code>, utilisez une hache
FROZENSET CODE>
Pour vos jeux imbriqués: P> l2 = set(frozenset(map(int, input().split())) for i in range(n))
J'essaie de sortir. Vous laissera savoir dans une seconde
Je ne connais pas beaucoup de familier avec Frozenset () mais ma sortie montre comme - {FROZANSET ({1, 2, 3, 4, 5}), gelenget ({11, 100, 12})}
On dirait que chaque élément est différent de l'autre et est un ensemble. Mais ne savez pas pourquoi le mot gelenget écrit en eux
@mishsx. Parce que lorsque vous imprimez un conteneur intégré, il imprime les éléments avec REC code>. Le
REC code> d'un
gelenset code> est une chaîne qui doit vous permettre de construire l'objet, et contient ainsi le mot
gelenset code>.
Essayez
(int, tuple (entrée.split ())) code>. Les objets mutables n'ont pas de hashcodes (puisqu'ils changeraient lorsqu'ils changeraient lors de la mutation et il allait briser la manière dont les collections de hasch fonctionnent).
SET CODE> est implémenté à l'aide d'une hache de base afin qu'il puisse stocker uniquement des éléments immuables (ou au moins: des choses dont l'identité est immuable).
Liste CODE> S est mutable, je n'ai donc pas de hashcode.
Split code> renvoie également une liste.
Bien sûr, laissez-moi vérifier et revenir en arrière.
I Obtenir: AttributeError: l'objet 'Fonction' n'a aucun attribut 'Split'
Désolé
entrée (). Split () code> La parenthèse manquante était une faute de frappe
J'ai écrit l2.add ((int, tuple (INPUT.SPLIT ())))
J'ai essayé l'autre version et je reçois - TypeError: Type malshable: 'Liste'
Votre production attendue n'est pas possible.
SET code> n'est pas un type valide pour
SET code> membres.
@ Mistermiyagi Je comprends, Mad Physicst a suggéré une approche utilisant le gelenget () qui semble fonctionner pour moi.