Manipulation

Manipulation

Casting

str.__doc__
#str(object='') -> str
#str(bytes_or_buffer[, encoding[, errors]]) -> str
#
#Create a new string object from the given object. If encoding or
#errors is specified, then the object must expose a data buffer
#that will be decoded using the given encoding and error handler.
#Otherwise, returns the result of object.__str__() (if defined)
#or repr(object).
#encoding defaults to sys.getdefaultencoding().
#errors defaults to 'strict'.

Casting forstås også som konvertering af eksempelvis tal til string.

# Konverter tal til strings

str(3.14159) # "3.14159"
str(2) # 2

#liste
str([1, 2, 3]) # [1, 2, 3]
#tuple
str((1, 2, 3)) # (1, 2, 3)
#set
str({1, 2, 3}) # {1, 2, 3}
(1, 2, 3)

mit_dict = {"Vej": "Paradisæblevej", "nr": 11}
str(mit_dict)
# {'Vej': 'Paradisæblevej', 'nr': 11}

replace Hvis vi har en text, hvor vi ønsker at ændre et ord. Det kan fx være at vi har stavet et ord forkert. I stedet for at gå ind og ændre på alle ordene, kan vi bare bruge replace.

tekst = "hej dette er et forsg på at skrive et forsg på et forsg"
# hej dette er et forsg på at skrive et forsg på et forsg

text.replace("forsg", "forsøg")
# Hej dette er et forsøg på at skrive et forsøg på et forsøg

I ovenstående eksempel “glemte” jeg ø, og skrev i stedet for forsøg, forsg.

Ved at bruge replace()-funktioinen, erstattede jeg forsg med forsøg.

split Når vi arbejder med strings, stødder vi af og til på eksempler, som kræver at vi splitter strengene ned ad. Fx splitter man ofte en string, når man arbejder med dataanalyser.

text = "Hello, world!"
text.split() #['Hello,', 'world!']
text.split("o") # ['Hell', ', w', 'rld!']

# split ved hvert komma
text2 = "dette er en tekst, hvor jeg bruger kommaer, så jeg kan splitte teksten ved hver komma, i mit eksempel"
text2.split(",")
# ['dette er en tekst', ' hvor jeg bruger kommaer', ' så jeg kan splitte teksten ved hver komma', ' i mit eksempel']

# Split ved hver whitespace
text2.split(" ")
# ['dette', 'er', 'en', 'tekst,', 'hvor', 'jeg', 'bruger', 'kommaer,', 'så', 'jeg', 'kan', 'splitte', 'teksten', 'ved', 'hver', 'komma,', 'i', 'mit', 'eksempel'

I ovenstående eksempel splitter vi de første ord ved hver o. I de to andre inddeler vi efter kommaer, og i det sidste eksempel inddeler vi hvert ord efter mellemrum(whitespace).

join Når vi ikke vil splitte en string ad, men i stedet sætte noget sammen med den, kan vi bruge join. Selvom det i teorien lyder nemt, at adskille split og join fra hinanden, så er det noget andet i praksis. Husk at det er ganske normalt, at tage fejl af split og join.

tekst = "a b c d e f g h i j k l"
tekst_join = "-"
tekst_join = tekst_join.join(tekst)
print(tekst_join)
# a- -b- -c- -d- -e- -f- -g- -h- -i- -j- -k- -l

tal = "0123456789"
tal_join = " "
tal_join = tal_join.join(tal)
print(tal_join)
# 0 1 2 3 4 5 6 7 8 9

upper Når vi for eksempel laver spil til undervisningen, synes vi af og til, at det kunne se fint ud med store bogstaver. I stedet for at skrive en hel tekst med tabulator eller ved at trykke shift, kan vi bruge upper()-funktionen.

tekst = "denne tekst skrives med versaler"
tekst.upper()
#DENNE TEKST SKRIVES MED VERSALER

lower Modsat upper()-funktionen, som omdanner en string til store bogstaver, gør lower det modsatte.

tekst1 = "DennE HER teKst sKrivES IkkE MED verSaLEr"
tekst1.lower()
# denne her tekst skrives ikke med versaler

title Title funktionen fungere ved at give det første bogstav i en string et stort bogstav.

tekst = "min titel tekst"
tekst.title()
# Min Titel Tekst

Dette er blot eksempler på nogle af de muligheder vi har, når vi vil manipulere med vores data i en string. Prøv at skriv en tekst. Fx

tekst = “dette er min tekst”

Herefter kalder du tekst frem, og trykker .(punktum) og tabular. Dette vil foreslå dig muligheder for funktioner. Prøv dem ad.