どのように正確に文字列を取得し、それを分割し、逆にし、pythonを使用してブラケット、カンマなどなしで再び結合することができますか?
_>>> tmp = "a,b,cde"
>>> tmp2 = tmp.split(',')
>>> tmp2.reverse()
>>> "".join(tmp2)
'cdeba'
_
またはより簡単:
_>>> tmp = "a,b,cde"
>>> ''.join(tmp.split(',')[::-1])
'cdeba'
_
ここで重要な部分は split function と join function です。リストを逆にするには、reverse()
を使用できます。これは、リストを所定の位置に逆にするか、スライス構文_[::-1]
_を使用して、新しい逆のリストを返します。
こういう意味ですか?
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
これですか?
from string import punctuation, digits
takeout = punctuation + digits
turnthis = "(fjskl) 234 = -345 089 abcdef"
turnthis = turnthis.translate(None, takeout)[::-1]
print turnthis
インタビューで、組み込みの機能を使用せずにそうするように頼まれました。そこで、これらのタスク用に3つの関数を作成しました。コードは次のとおりです
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
覚えておいてください、これはより簡単な解決策の1つです。これは最適化できるので、試してみてください。ありがとうございました!