Verständnisfrage: Liste Tupel, oder völlig kalt?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Hallo zusammen!

Schon vor Monaten habe ich versucht mit der Hilfe meines Lieblingsbuches und eurer Hilfe Python zu lernen. Leider habe ich meine Bemühungen aufgrund Zeitmangels unterbrochen. Jetzt ist natürlich das meiste weg und ich versuche wieder einen Einsprungpunkt zu finden.

Bei den Programm, was ich damals versucht habe umzusetzten muss ich leider zugeben, das viele der Codezeilen von euch kamen, und ich dementsprechend versucht habe zu verstehen, was ihr beigetragen habt. Jetzt muss ich leider wieder so ziemlich von Vorne anfangen und scheitere bei der simplen Frage: Um was handelt es sich hier:

[codebox=pycon file=Unbenannt.txt]
SERVERS = [
("Servername", "serveradresse.de", 22),
("Server-lokal", "server", 22),
("Mediacenter", "192.168.0.145", "22")
]
[/code]

Ist das eine Liste? Ein Tupel, oder liege ich komplett falsch? Was ist das?

Danke für eure Mühe mich zu erhellen!

Viele Grüße

Dirk
BlackJack

@Dirki: Das ist eine Liste mit Tupeln die jeweils drei Elemente haben, wovon die ersten beiden Zeichenketten sind, und das dritte eine ganze Zahl, ausser beim letzten Tupel. Was vermutlich ein Fehler ist.

Das kann man mit der `type()`-Funktion herausfinden:

Code: Alles auswählen

In [9]: SERVERS
Out[9]: 
[('Servername', 'serveradresse.de', 22),
 ('Server-lokal', 'server', 22),
 ('Mediacenter', '192.168.0.145', '22')]

In [10]: type(SERVERS)
Out[10]: list

In [11]: type(SERVERS[0])
Out[11]: tuple

In [12]: list(map(type, SERVERS[0]))
Out[12]: [str, str, int]

In [13]: list(map(type, SERVERS[-1]))
Out[13]: [str, str, str]
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Danke BlackJack für Deine Antwort! :)

Wie man ja erkennen kann möchte ich in der Liste mit Tupeln ja Serveradressen und IPs speichern. Das man Zahlen und und Zeichenketten mischt, ist das generell falsch, oder "nur" schlechter Stil? Weil Server ja entweder über das eine oder andere erreicht werden, ist es ja leider nicht zu 100% sicherzustellen, das die Listen das eine oder das andere enthalten.

Edit: unglaublich, wie ihr Code mal eben aus den Ärmel schüttelt
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Das man Zahlen und und Zeichenketten mischt, ist das generell falsch, oder "nur" schlechter Stil?
Du kannst in einer Liste oder einem Tupel beliebig mischen, je nach Anforderung.

Was BlackJack meint ist die Inkonsistenz der zwischen ersten beiden Tupeln und dem dritten. In den ersten beiden ist 22 ein Zahl vom Typ `int`, im dritten ein String. Hier gilt normalerweise: entweder oder.

Gruß, noisefloor
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Ahh! Alles Klar, dabei handelt es sich in der Tat um einen Fehler. Wer weiß was mich da geritten hat. Danke vielmals für die Hinweise!
Antworten