Python翻转字符串或者列表的方式

1. reversed

class reversed(object)
 |  reversed(sequence) -> reverse iterator over values of the sequence
 |  
 |  Return a reverse iterator
 |  
 |  Methods defined here:
 |  
 |  __getattribute__(...)
 |      x.__getattribute__('name') <==> x.name
 |  
 |  __iter__(...)
 |      x.__iter__() <==> iter(x)
 |  
 |  __length_hint__(...)
 |      Private method returning an estimate of len(list(it)).
 |  
 |  next(...)
 |      x.next() -> the next value, or raise StopIteration
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __new__ = <built-in method __new__ of type object>
 |      T.__new__(S, ...) -> a new object with type S, a subtype of T

处理的对象是可迭代对象,返回值是一个迭代器,所以可以处理string list 等,如下:

In [54]: reversed([1,2,3])                                                                                                                                                                        
Out[54]: <listreverseiterator at 0x7f835810c190>

In [55]: reversed('123')                                                                                                                                                                          
Out[55]: <reversed at 0x7f835810c2d0>

In [56]: type(reversed('123'))
Out[56]: reversed

In [57]: for i in reversed('123'):
   ....:     print i
   ....:     
3
2
1

PS: list内置__reversed__()方法实现的功能和此类似,使用方法见2

 

2. reverse

reverse是list内置的一个方法,所以只能对list使用,如下:

In [62]: l = [1, 2, 3]                                                                                                                                                                            

In [63]: l.reverse()

In [64]: l
Out[64]: [3, 2, 1]

 

__reversed__()

In [65]: l.__reversed__()
Out[65]: <listreverseiterator at 0x7f835810ca90>

In [66]: for i in l.__reversed__():                                                                                                                                                               
   ....:     print i
   ....:     
1
2
3

 

3. 切片

最简单的一种方法了,可以对string和list使用

In [73]: s
Out[73]: 'i am a student.'

In [74]: s[::-1]
Out[74]: '.tneduts a ma i'

In [75]: l
Out[75]: [3, 2, 1]

In [76]: l[::-1]
Out[76]: [1, 2, 3]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值