Ich habe mal eine Frage.
Code: Alles auswählen
a = [[a , b], [c, d]
b = [e, f]
a.append(b)
b.clear()
Mit deepcopy schaffe ich das.
Meine Frage ist: Gibt es bessere Methoden?
Code: Alles auswählen
a = [[a , b], [c, d]
b = [e, f]
a.append(b)
b.clear()
Code: Alles auswählen
a = [[a , b], [c, d]] #hier fehlte übrigens eine " ] "
b = [e, f]
a.append(b)
del a[2] # b ist 3. Element, aber man zählt ab 0, also 2
Code: Alles auswählen
a = [ [1,1], [2,2] ]
b = [3,3]
a.append(b)
print(a)
# Ausgabe: [[1, 1], [2, 2], [3, 3]]
print(a[2])
# Ausgabe: [3, 3]
Code: Alles auswählen
>>> a = [["a", "b"], ["c", "d"]]
>>> b = ["e", "f"]
>>> a.append(b)
>>> print(a)
[['a', 'b'], ['c', 'd'], ['e', 'f']]
>>> id(b)
1415432304008
>>> id(a[2])
1415432304008
>>> b.clear()
>>> print(b)
[]
>>> print(a)
[['a', 'b'], ['c', 'd'], []]
>>>
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sys import exit
def main():
with open("freunde.csv") as fr, open("freunde.csv", "a") as fw:
liste = []
gefunden = []
neu = []
for line in fr:
line = line.strip().split(",")
liste.append(line)
while True:
eingabe = input("Eingabe: (q=quit n=neu) ").lower()
if eingabe == "q":
break
elif eingabe == "n":
neu.append(input("Vorname? ").lower().strip())
neu.append(input("Nachname? ").lower().strip())
if neu[0] != "" and neu[1] != "":
if neu not in liste:
liste.append(neu)
fw.write("{},{}\n".format(neu[0], neu[1]))
else:
print("Exsistiert schon!")
else:
print("Da fählt was!")
del neu[:]
for vorname, nachname in liste:
if vorname == eingabe or nachname == eingabe:
gefunden.append(vorname)
gefunden.append(nachname)
if gefunden != []:
for x in range(0, len(gefunden)-1, 2):
print(gefunden[x].title(), gefunden[x+1].title())
del gefunden[:]
if __name__ == "__main__":
main()
exit("Aufwiedersehen")
Code: Alles auswählen
#!/usr/bin/env python3
import csv
def main():
with open("freunde.csv", newline="", encoding="utf8") as lines:
freunde = list(csv.reader(lines))
with open("freunde.csv", mode="a", newline="", encoding="utf8") as output:
output = csv.writer(output)
while True:
eingabe = input("Eingabe: (q=quit n=neu) ").lower()
if eingabe == "q":
break
elif eingabe == "n":
vorname = input("Vorname? ").lower().strip(),
nachname = input("Nachname? ").lower().strip(),
neuer_freund = [vorname, nachname]
if vorname and nachname:
if neuer_freund not in freunde:
freunde.append(neuer_freund)
output.writerow(neuer_freund)
else:
print("Exsistiert schon!")
else:
print("Da fehlt was!")
else:
gefundene_freunde = []
for vorname, nachname in freunde:
if vorname == eingabe or nachname == eingabe:
gefundene_freunde.append([vorname, nachname])
if gefundene_freunde:
for vorname, nachname in gefundene_freunde:
print(vorname.title(), nachname.title())
if __name__ == "__main__":
main()
Code: Alles auswählen
#!/usr/bin/env python3
def main():
with open("freunde.csv", encoding="utf-8") as lines:
rows = [line.strip().split(",") for line in lines]
with open("freunde.csv", "a", encoding="utf-8") as file:
while True:
eingabe = input("Eingabe: (q=quit n=neu) ").lower()
if eingabe == "q":
break
if eingabe == "n":
row = [
input(f"{what}? ").lower().strip()
for what in ["Vorname", "Nachname"]
]
if "" in row:
if row not in rows:
rows.append(row)
file.write(",".join(row) + "\n")
else:
print("Exsistiert schon!")
else:
print("Da fehlt was!")
#
# TODO Soll das eventuell in ein ``else`` damit nicht nach "n"
# gesucht wird?
#
gefunden = [row for row in rows if eingabe in row]
for row in gefunden:
print(" ".join(value.title() for value in row))
print("Aufwiedersehen")
if __name__ == "__main__":
main()