2d array mit "tuple" objekt

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
moritz644
User
Beiträge: 7
Registriert: Samstag 13. Februar 2021, 14:09

Hallo,

ich bin gerade dabei mich ein bisschen in socket einzuarbeiten und möchte es nun 2 Clients ermöglichen über einen Server zu kommunizieren. Ich habe mir nun gedacht das könnte ich mit einem 2d-Array bewerkstelligen. Also, dass in connections[0][0] der eine Client ist und in connections[0][1] der andere Client steht. Die Clients sind wiefolgt aufgebaut: ('192.168.178.111', 65527). Ich habe jetzt allerdings Probleme weitere Verbindungen an Connections hinzuhängen. Ich hätte, dass jetzt so gemacht:
ADDR = ('192.168.178.000', 65527)
ADDR1 = ('192.168.178.111', 65527)
ADDR4 = ('192.168.178.444', 65527)
ADDR5 = ('192.168.178.555', 65527)
connections = [[ADDR], [ADDR1]], [[('192.168.178.222', 65527)], [('192.168.178.333', 65527)]]
connections.append([[ADDR4], [ADDR5]])
print(connections)
Also, dass in connections nachher [[ADDR], [ADDR1]], [[('192.168.178.222', 65527)], [('192.168.178.333', 65527)]], [[ADDR4],[ADDR5]] steht.
Ich bekomme nun allerdings als fehler, dass ich append nicht mit tuple nicht verwenden darf, mit was kann ich append erstzen?

Vielen Dank im Vorraus
Moritz
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum packst Du jede Addresse nochmal in eine einelementige Liste?
`connections` ist ein Tuple mit zweielementigen Listen, deren Elemente wieder einelementige Listen sind deren einziges Element wieder ein Tuple ist.
Das ist doch viel zu kompliziert. Tuple sind dazu da, verschiedenartige Dinge zusammenzufassen, Listen dagegen um gleichartige Elemente zu sammeln. Du benutzt das genau falsch.

Code: Alles auswählen

connections = [(ADDR, ADDR1), (('192.168.178.222', 65527), ('192.168.178.333', 65527))]
connections.append((ADDR4, ADDR5))
print(connections)
Antworten