nyckel och värde
hur kan kan skapa key and value av tex tre rader?
hej jag heter
olof och
jag gillar programmering
där meningen på raden ska vara key och value radnumret?
förstår man måste skapa en tom dictionary , upp={} och sen iterera över varje rad och läsa av radnumret osv men sitter fast i hur man skall koda det.. om ngn har ngn logaritmide eller liknande hade det varit uppskattat :D
Koden nedanför läser in tio rader och lägger i en dictionary.
my_dict = dict()
counter = 1
while counter <= 10:
rad = input()
my_dict[rad] = counter
counter += 1
print(my_dict)
Nu vet jag inte om det finns något smidigare sätt att göra det, men en grundalgoritm som fungerar i de flesta språk går ju ut på att som du säger loopa genom allt, och lägga in rad för rad. I pseudokod skulle det kunna se ut något i stil med:
radnummer = 0
dictionary = {}
for rad in fil do
dictionary[rad] = radnummer
radnummer = radnummer + 1
end
Tänk på att en nyckel bara kan finnas en gång, så skulle två rader i filen ha samma innehåll, så kommer bara ett av dom att komma med i dict:en. Men om du vet att det inte är så i filen så behöver du ju inte ta hänsyn till det.
# En liten en-rads-variant av tidigare exempel, mest för skojs skull
upp = {rad.rstrip():nr for (nr, rad) in enumerate(file("filnamn.txt"))}
hm, oki, men om man skulle vända på det kanske det blir enklare? att radnummer är nyckel och texten på raden är värdet?
Sami skrev:hm, oki, men om man skulle vända på det kanske det blir enklare? att radnummer är nyckel och texten på raden är värdet?
Det låter som ett vanligare use case, men vad är det du vill använda det till?
Jag förstår man skall skapa en tom dictionary, tex
d= {} och sedan göra en for loop över alla rader i filen. typ
with open(’fil’) as f
d={}
radnummer =0
for rad in f:
radnummer+=1
......
försöker applicera själva idén om nycklar lch värden på Ngt man kan använda det på