Hallo, ich bin neu also entschuldige ich mich schon im voraus für die felher die ich machen werde, ich hoffe ir versteht mein Problem trotzdem.
Aber davon abgesehen ich habe den Fall das ein Element eines Sets das mir vorliegt auch ein Set ist, ich brauche die Daten in diesem zweitem Set, wie komme ich an diese ran?
Natürlich habe ich einiges versucht be vor ich hier angelaufen kam:
zuerst kurtz die Situation als Code darstellen:
2 = {a , b , c}
set_1 = {1 , 2}
#ich habs mal so dargestellt damit ir wisst was geeint ist aber mir liegt das schon so vor, hätte ich das #geschrieben hätte ich eine liste oder so verwendet.
ich hab versucht das Element zu printen mit:
for x in set_1:
print(x)
ich dachte das Ergebnis würde so sein:
1
{a , b , c}
aber das Ergebnis welches ich erhielt war:
1
2
ein anderer lösungs Ansatz war:
print( 2 in set_1)
erwartetes Ergebnis war:
{a , b , c}
tatsächliches Ergebnis:
True
ich hab bevor ich wusste das es sich um ein Set handelt noch andre Sachen versucht die jetzt wo ich weis das es ein Set ist dumm wirken wie zu versuchen den Index zu benutzen.
Auf jeden Fall, möchte ich an {a , b , c} ran weis aber nicht wie.
ich bin neu also sind links zu Tutorials sowie jegliche Form von Tipps immer gern gesehen.
set im set
-
- User
- Beiträge: 3
- Registriert: Donnerstag 8. August 2019, 21:17
bin neu pls no hate
Das kann so nicht sein. Man kann in Python keine Zahl als Bezeichner nehmen.
2 = irgendwas
geht also nicht. Entsprechend ist das auch klar, dass { 1, 2 } niemals etwas anderes als eine 2 enthalten kann.
pillepalle = {6,7,8}
foo = { 1, pillepalle}
hingegen tut was du willst.
2 = irgendwas
geht also nicht. Entsprechend ist das auch klar, dass { 1, 2 } niemals etwas anderes als eine 2 enthalten kann.
pillepalle = {6,7,8}
foo = { 1, pillepalle}
hingegen tut was du willst.
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Was alles nix daran ändert das der OP nicht das hat was er behauptet. Und selbst wenn er es hätte wird ``2 in set_1`` niemals etwas anderes als `True` oder `False` ergeben wenn `set_1` vom Typ `set` ist. Eine komisch Erwartung ist das da ``{1, 2, 3}`` als Ergebnis haben zu wollen. 
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
-
- User
- Beiträge: 3
- Registriert: Donnerstag 8. August 2019, 21:17
was ich genau hab ist:
{'killmail_id': 78310117, 'zkb': {'locationID': 40370039, 'hash': '62c58a6ad9a58f676018b202f4458966bcf0dff4', 'fittedValue': 54490556.68, 'totalValue': 143520742.78, 'points': 1, 'npc': False, 'solo': True, 'awox': False}}
ich geh davon aus das 'zkb' eine variable ist die das folgenden set enthält bin mir aber nicht sicher.
tut mir leid das ich im abstrakten Beispiel oben etwas falsch dargestellt hab das sollte nur ein abstraktes Beispiel sein.
also jetzt nochmal neu: ich möchte die Information aus dem set 'zkb' und komme nicht ran.
damit die beispiele vom original post nicht sinlos waren hier die Entsprechungen :
1 entspricht 'kilmail id'
2 entspricht 'zkb'
{a,b,c} entspricht dem set das auf 'zkb' folgt
{'killmail_id': 78310117, 'zkb': {'locationID': 40370039, 'hash': '62c58a6ad9a58f676018b202f4458966bcf0dff4', 'fittedValue': 54490556.68, 'totalValue': 143520742.78, 'points': 1, 'npc': False, 'solo': True, 'awox': False}}
ich geh davon aus das 'zkb' eine variable ist die das folgenden set enthält bin mir aber nicht sicher.
tut mir leid das ich im abstrakten Beispiel oben etwas falsch dargestellt hab das sollte nur ein abstraktes Beispiel sein.
also jetzt nochmal neu: ich möchte die Information aus dem set 'zkb' und komme nicht ran.
damit die beispiele vom original post nicht sinlos waren hier die Entsprechungen :
1 entspricht 'kilmail id'
2 entspricht 'zkb'
{a,b,c} entspricht dem set das auf 'zkb' folgt
bin neu pls no hate
- pillmuncher
- User
- Beiträge: 1530
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@jaxon_has_a_py: Du hast keine sets, sondern dicts.
set: https://docs.python.org/3/library/stdty ... -frozenset
dict: https://docs.python.org/3/library/stdty ... types-dict
set: https://docs.python.org/3/library/stdty ... -frozenset
dict: https://docs.python.org/3/library/stdty ... types-dict
In specifications, Murphy's Law supersedes Ohm's.
Du hast Wörterbücher und auf Wörterbücher greift man über den Schlüssel zu:
Code: Alles auswählen
some_data = {'killmail_id': 78310117, 'zkb': {'locationID': 40370039, 'hash': '62c58a6ad9a58f676018b202f4458966bcf0dff4', 'fittedValue': 54490556.68, 'totalValue': 143520742.78, 'points': 1, 'npc': False, 'solo': True, 'awox': False}}
print(some_data['zkb']['totalValue'])
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@jaxon_has_a_py: Um bei einem Wörterbuch (`dict`) über einen Schlüssel auf den Wert zuzugreifen benutzt man eckige Klammern:
Der ``in``-Operator prüft ob der erste Operand im zweiten enthalten ist. Bei Wörterbüchern (`dict`) bezieht sich der Test auf die Schlüssel. ``'zkb' in data`` gibt `True` zurück weil dieser Wert als Schlüssel in `data` enthalten ist. ``'Phloeotribus' in data`` würde beispielsweise `False` ergeben.
In Fällen wo Wörterbücher keine ”beliebigen” Daten enthalten, sondern einen festen Satz an Schlüsseln, also eigentlich semantisch eher Objekte mit Attributen sind, verwende ich ganz gerne das externe `addict.Dict` um solche Daten zu ”verpacken” und dann wie bei Objekten zugreifen zu können:
Code: Alles auswählen
#/usr/bin/env python3
def main():
data = {
'killmail_id': 78310117,
'zkb': {
'locationID': 40370039,
'hash': '62c58a6ad9a58f676018b202f4458966bcf0dff4',
'fittedValue': 54490556.68,
'totalValue': 143520742.78,
'points': 1,
'npc': False,
'solo': True,
'awox': False,
},
}
print(data['zkb'])
if __name__ == '__main__':
main()
In Fällen wo Wörterbücher keine ”beliebigen” Daten enthalten, sondern einen festen Satz an Schlüsseln, also eigentlich semantisch eher Objekte mit Attributen sind, verwende ich ganz gerne das externe `addict.Dict` um solche Daten zu ”verpacken” und dann wie bei Objekten zugreifen zu können:
Code: Alles auswählen
#/usr/bin/env python3
from addict import Dict
def main():
data = Dict(
{
'killmail_id': 78310117,
'zkb': {
'locationID': 40370039,
'hash': '62c58a6ad9a58f676018b202f4458966bcf0dff4',
'fittedValue': 54490556.68,
'totalValue': 143520742.78,
'points': 1,
'npc': False,
'solo': True,
'awox': False,
},
}
)
print(data.zkb)
print(data.zkb.hash)
if __name__ == '__main__':
main()
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
-
- User
- Beiträge: 3
- Registriert: Donnerstag 8. August 2019, 21:17
Danke für die Aufklärung das es keine sets sind sonder dicts.
Dann machst auch sinn das nichts funktioniert hat, woran erkenne ich das es ein dict ist und kein Set?
Ich vermute mal das ich es daran erkenn das nach den Inhalten ein Doppelpunkt und noch was anderes kommt oder?
bsp:
{
'a' : 123
}
wäre dann ein dict, und das wär ein set:
{
'a' ,
'b'
}
ur um scer zu gehen das ichs vestanden hab.
Dann machst auch sinn das nichts funktioniert hat, woran erkenne ich das es ein dict ist und kein Set?
Ich vermute mal das ich es daran erkenn das nach den Inhalten ein Doppelpunkt und noch was anderes kommt oder?
bsp:
{
'a' : 123
}
wäre dann ein dict, und das wär ein set:
{
'a' ,
'b'
}
ur um scer zu gehen das ichs vestanden hab.
bin neu pls no hate
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ansonsten kann man im Zweifelsfall auch immer den Typ mit `type()` ermitteln und mit `print()` ausgeben.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Wobei das eine etwas saloppe Formulierung ist.jaxon_has_a_py hat geschrieben: Samstag 10. August 2019, 13:31 Ich vermute mal das ich es daran erkenn das nach den Inhalten ein Doppelpunkt und noch was anderes kommt oder?
