View Single Post
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.
Vis hele sitatet...
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
Vis hele sitatet...
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.
Vis hele sitatet...
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. 22:06.