前言:主要记录python中的reverse和split用法。
题目描述:
思路记录:最开始是打算将输入反向输出,但是结果并不是 i am a student.而是“i ma a tneduts”。然后就在此基础上,思考能不能以空格为边界,将单词作为一个子列表整体append到一个大的列表中,然后再输出。想实现的是: m.append(student)+空格+m.append(a)....+m.append(i),这样再反向输出,就能得到想到的结果。但是试了很久没有实现出来。sigh...看了一串答案,很多是用reverse和split,join一起实现的,这明显不是题目的意思吧。anyway,这个想法先留着,再思考一下怎么实现,先把简单的实现方法总结学习一下。
reverse()函数是python中翻转数列的三种方法之一。
方法一:reverse()函数
a=[1,2,3,4,5,6,6]
a.reverse()
a
[6, 6, 5, 4, 3, 2, 1]
方法二:sorted()函数
a=[23,22,53,43,45,26,6]
c=sorted(a)
c
[6, 22, 23, 26, 43, 45, 53]
方法三:使用分片(切片)
a=[23,22,53,43,45,26,6]
c=a[::-1]
c
[6, 26, 45, 43, 53, 22, 23]
split():是制定分隔符号对字符串进行切片。
split("分隔符")
s='wo ai zhong guo'
c=s.split(' ')
c
['wo', 'ai', 'zhong', 'guo'] #注意返回的是一个列表。我之前想要寻找的方法就是表达法出单词分离的,split就能很好的实现。
------------------
# -*- coding:utf-8 -*-
class Solution:
def ReverseSentence(self, s):
# write code here
#判断边界
if len(s)==0:
return s
#思路:将字符串转成列表,然后已栈的形式输出.但是这样输出的结果每个单词都反转了。
#思路二:以空格为边界,遇到空格就将其输出。
#思路三:用split方法
res=s.split()
if not res:
return s
return " ".join(res[::-1])
总结:reverse()函数能够将数列翻转但是不能排序。split()函数可以根据不同制定符号来分离字符,返回的是一个数组形式。join()函数将数组转换成字符串。