webentwicklung-frage-antwort-db.com.de

Python: Wie genau kann man einen String nehmen, aufteilen, umkehren und wieder zusammenfügen?

Wie genau kann man einen String mit Python nehmen, spalten, umkehren und wieder zusammenfügen, ohne Klammern, Kommas usw.?

29
Tstrmwarrior
>>> tmp = "a,b,cde"
>>> tmp2 = tmp.split(',')
>>> tmp2.reverse()
>>> "".join(tmp2)
'cdeba'

oder einfacher:

>>> tmp = "a,b,cde"
>>> ''.join(tmp.split(',')[::-1])
'cdeba'

Die wichtigen Teile sind hier die Split-Funktion und die Join-Funktion . Um die Liste umzukehren, können Sie reverse() verwenden, wodurch die vorhandene Liste umgedreht wird, oder die Aufteilungssyntax [::-1], Wodurch eine neue, umgedrehte Liste zurückgegeben wird.

55
Mad Scientist

Meinst du so?

import string
astr='a(b[c])d'

deleter=string.maketrans('()[]','    ')
print(astr.translate(deleter))
# a b c  d
print(astr.translate(deleter).split())
# ['a', 'b', 'c', 'd']
print(list(reversed(astr.translate(deleter).split())))
# ['d', 'c', 'b', 'a']
print(' '.join(reversed(astr.translate(deleter).split())))
# d c b a
2
unutbu

Du meinst das?

from string import punctuation, digits

takeout = punctuation + digits

turnthis = "(fjskl) 234 = -345 089 abcdef"
turnthis = turnthis.translate(None, takeout)[::-1]
print turnthis
0

In einem Interview wurde ich gebeten, dies zu tun, ohne eine eingebaute Funktion zu verwenden. Deshalb habe ich drei Funktionen für diese Aufgaben geschrieben. Hier ist der Code-

def string_to_list(string):
'''function takes actual string and put each Word of string in a list'''
list_ = []
x = 0 #Here x tracks the starting of Word while y look after the end of Word.
for y in range(len(string)):
    if string[y]==" ":
        list_.append(string[x:y])
        x = y+1
    Elif y==len(string)-1:
        list_.append(string[x:y+1])
return list_

def list_to_reverse(list_):
'''Function takes the list of words and reverses that list'''
reversed_list = []
for element in list_[::-1]:
    reversed_list.append(element)
return reversed_list

def list_to_string(list_):
'''This function takes the list and put all the elements of the list to a string with 
space as a separator'''
final_string = str()
for element in list_:
    final_string += str(element) + " "
return final_string

#Output
text = "I love India"
list_ = string_to_list(text)
reverse_list = list_to_reverse(list_)
final_string = list_to_string(reverse_list)
print("Input is - {}; Output is - {}".format(text, final_string))
#op= Input is - I love India; Output is - India love I 

Bitte denken Sie daran, dies ist eine einfachere Lösung. Dies kann optimiert werden, probieren Sie das aus. Vielen Dank!

0
Ruman Khan