当给出姓名时,例如Aberdeen Scotland
。
我需要获得Adbnearldteoecns
的结果。
将第一个单词保留为plain,但将最后一个单词反转并放入第一个单词之间。
到目前为止我已经完成了:
coordinatesf = "Aberdeen Scotland"
for line in coordinatesf:
separate = line.split()
for i in separate [0:-1]:
lastw = separate[1][::-1]
print(i)
答案 0 :(得分:0)
有点脏但是有效:
coordinatesf = "Aberdeen Scotland"
new_word=[]
#split the two words
words = coordinatesf.split(" ")
#reverse the second and put to lowercase
words[1]=words[1][::-1].lower()
#populate the new string
for index in range(0,len(words[0])):
new_word.insert(2*index,words[0][index])
for index in range(0,len(words[1])):
new_word.insert(2*index+1,words[1][index])
outstring = ''.join(new_word)
print outstring
答案 1 :(得分:0)
请注意,如果输入字符串由两个长度相同的单词组成,那么您只想定义好。 我使用断言来确保它是正确的,但你可以将它们排除在外。
def scramble(s):
words = s.split(" ")
assert len(words) == 2
assert len(words[0]) == len(words[1])
scrambledLetters = zip(words[0], reversed(words[1]))
return "".join(x[0] + x[1] for x in scrambledLetters)
>>> print(scramble("Aberdeen Scotland"))
>>> AdbnearldteoecnS
您可以用sum()替换x [0] + x [1]部分,但我认为这会降低其可读性。
答案 2 :(得分:0)
这会分割输入,用反转的第二个词拉开第一个单词,加入对,然后加入对列表。
coordinatesf = "Aberdeen Scotland"
a,b = coordinatesf.split()
print(''.join(map(''.join, zip(a,b[::-1]))))