Python可迭代序列反转总结

字符串反转

示例:s = "hello"

方法一:使用切片
def reversed_str(s):
    return s[::-1]


方法二:使用reversed
# 字符串 -> 反转迭代器 -> 列表 -> 反转后的字符串
def reversed_str(s):
    return "".join(list(reversed(s)))   # 实际编码不要这样写,不容易理解


方法三:使用reverse
def reversed_str(s):
    str_list = list(s)
    # 注意list.reverse()和list.sort()一样,都是就地操作没有返回值
    str_list.reverse()  
    return "".join(str_list)


方法四:使用reduce
def reversed_str(s):
    from functools import reduce
    # reduce的第一个参数是函数,第二个参数是序列
    return reduce(lambda x, y: y+x, s)


列表反转

示例:lst = [1, 2, 3, 4, 5]

方法一:使用切片
def reversed_list(lst):
    return lst[::-1]


方法二:使用reversed
def reversed_list(lst):
    return list(reversed(lst))


方法三:使用reverse
def reversed_list(lst):
    lst.reverse()   # 就地反转
    return lst


方法四:使用while循环和pop
def reversed_list(lst):
    reversed_lst = []
    while len(lst) > 0:
        reversed_lst.append(lst.pop())
    return reversed_lst

补充:元组的反转与列表类似,可以使用方法一和方法二,方法三和方法四需要稍加修改,这里就不赘述了

转载于:https://www.cnblogs.com/zzliu/p/10964137.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值