Förskjut en sträng
Du ska skapa en generator som, givet en sträng, producerar en sekvens av de ingående tecknen förskjutna ett angivet antal positioner shift. Strängen 'sushi' ger till exempel sekvensen 'h', 'i', 's', 'u', 's' när vi förskjuter 2 positioner åt höger (shift = 2). Förskjuter vi 2 positioner åt vänster (shift = -2) blir den resulterande sekvensen 's', 'h', 'i', 's', 'u'.
Tips: använd operatorn % för att cykla igenom de giltiga indexen. Den ger en icke-negativ rest oavsett om talet är positivt eller negativt, vilket är användbart när du förskjuter ditt index.
Betrakta till exempel variabeln string = 'python', som innehåller en sträng med 6 tecken:
2 % 6 = 2(alltså ärstring[2 % 6]lika medt)0 % 6 = 0(alltså ärstring[0 % 6]lika medp)-2 % 6 = 4(alltså ärstring[-2 % 6]lika medo)
Den här övningen är en del av kursen
Öva på kodningsintervjufrågor i Python
Övningsinstruktioner
- Loopa över indexen i en sträng med hjälp av den angivna variabeln
len_string. - Ta reda på vilket tecken som motsvarar indexet efter förskjutningen.
- Skapa en generator som förskjuter strängen
'DataCamp'med 3 positioner åt höger (dvs."ampDataC"). - Skapa en ny sträng med hjälp av generatorn och skriv ut den.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
def shift_string(string, shift):
len_string = len(string)
# Loop over the indices of a string
for idx in ____:
# Find which character will correspond to the index.
____ ____[____]
# Create a generator
gen = ____
# Create a new string using the generator and print it out
string_shifted = ''.____
print(string_shifted)