Sitat av Pope
Det har du veldig rett i Provo
Kunne du ha forklart meg hvordan koden din virker? translate og join er nytt for meg.
Regner med at du bruker Python 3,til info der vil koden @Provo feile fordi dem har gjort om
str.maketrans()
If there is only one argument, it must be a dictionary mapping
Da kan det skrives sånn med et argument som er dictionary.
Kode
>>> setning = ["Jexg", "hayr", "ezn", "katæt", "soøm", "heteår", "Hans"]
>>> letters = ["x", "y", "z", "æ", "ø", "å"]
>>> [s.translate({ord(c):'' for c in ''.join(letters)}) for s in setning]
['Jeg', 'har', 'en', 'katt', 'som', 'heter', 'Hans']
Viss man tar med str.maketrans(),kan det gjøres sånn uten dictionary.
Kode
>>> setning = ["Jexg", "hayr", "ezn", "katæt", "soøm", "heteår", "Hans"]
>>> remove = str.maketrans('', '', 'xyzæøå')
>>> [s.translate(remove) for s in setning]
['Jeg', 'har', 'en', 'katt', 'som', 'heter', 'Hans']
Noen forslag til hvordan jeg løser dette med list comprehension da? Helt uten å importere moduler.
Tjaa i farta noe som dette,men det ble ikke noe pent(lesbart).
En eller flere linjer til hadde gjort det klarere.
Kode
>>> ''.join(c for x in setning for c in x+' ' if c not in 'xyzæøå').split()
['Jeg', 'har', 'en', 'katt', 'som', 'heter', 'Hans']
Sist endret av snippsat; 11. april 2018 kl. 23:06.