Ik ben bezig met Python te leren en loop tegen iets aan wat ik niet goed kan oplossen en heb het gevoel dat ik veel te moeilijk denk. Ik heb een nested list:
Nu wil ik een nieuw element aan deze list toevoegen, maar alleen indien de naam nog niet voorkomt in de list. Zoals je ziet staat de naam op iedere 2e positie van ieder element. Stel dat de list geen nested list was maar gewoon een simpele list:
Kan ik simpelweg het volgende doen:
Ik heb nu het volgende wat wel werkt, maar ik denk dat dit "pythonesker" kan:
Kan dit korter of handiger? Ik unpack nu alles, maar ik weet al zeker dat ik alleen op de 2e positie van ieder element hoef te zoeken.
code:
1
| l = [[1, "Frits", 3], [2, "Dirk", 6], [3, "Jan", 30]] |
Nu wil ik een nieuw element aan deze list toevoegen, maar alleen indien de naam nog niet voorkomt in de list. Zoals je ziet staat de naam op iedere 2e positie van ieder element. Stel dat de list geen nested list was maar gewoon een simpele list:
code:
1
| l = ["Frits", "Dirk", "Jan"] |
Kan ik simpelweg het volgende doen:
code:
1
2
3
| new_name = "Peter" if new_name not in l: l.append(new_name) |
Ik heb nu het volgende wat wel werkt, maar ik denk dat dit "pythonesker" kan:
code:
1
2
3
4
5
6
7
| new_name = "Peter" exists = 0 for i, name, x in l: if name == new_name: exists += 1 if exists == 0: l.append([2, new_name, 7]) |
Kan dit korter of handiger? Ik unpack nu alles, maar ik weet al zeker dat ik alleen op de 2e positie van ieder element hoef te zoeken.
[ Voor 0% gewijzigd door RonG op 21-07-2015 15:54 . Reden: taalfoutje ]