Python可迭代序列反转

打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

1.字符串反转

示例:s = "hello"
方法一:使用切片
  1. def reversed_str(s):
  2.     return s[::-1]
复制代码
方法二:使用reversed
  1. # 字符串 -> 反转迭代器 -> 列表 -> 反转后的字符串
  2. def reversed_str(s):
  3.     return "".join(list(reversed(s)))        # 实际编码不要这样写,不容易理解
复制代码
方法三:使用reverse
  1. def reversed_str(s):
  2.     str_list = list(s)
  3.     # 注意list.reverse()和list.sort()一样,都是就地操作没有返回值
  4.     str_list.reverse()       
  5.     return "".join(str_list)
复制代码
方法四:使用reduce
  1. def reversed_str(s):
  2.     from functools import reduce
  3.     # reduce的第一个参数是函数,第二个参数是序列
  4.     return reduce(lambda x, y: y+x, s)
复制代码
2.列表反转

示例:lst = [1, 2, 3, 4, 5]
方法一:使用切片
  1. def reversed_list(lst):
  2.     return lst[::-1]
复制代码
方法二:使用reversed
  1. def reversed_list(lst):
  2.     return list(reversed(lst))
复制代码
方法三:使用reverse
  1. def reversed_list(lst):
  2.     lst.reverse()        # 就地反转
  3.     return lst
复制代码
方法四:使用while循环和pop
  1. def reversed_list(lst):
  2.     reversed_lst = []
  3.     while len(lst) > 0:
  4.         reversed_lst.append(lst.pop())
  5.         return reversed_lst
复制代码
增补:元组的反转与列表类似,可以使用方法一和方法二,方法三和方法四需要稍加修改,这里就不赘述了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表