zoukankan      html  css  js  c++  java
  • [Python] for in range()使用以及列表字符串反转方法

    用python,少不了循环遍历,这里记录一下,for in range 的结构用法。

    range()函数结构如下:

    def range(__x: int, __y: int = ..., __step: int = ...) -> List[int]: ...
    

    也可以理解成:range(start,end,step) or range(n).

    • step默认是1,也可以指定step.
    • [start,end]区间范围左闭右开,没有区间定义的话默认从0开始,n-1结束。
    for i in range(1,5):
    	print(i)
    ->1,2,3,4
    
    for i in range(5):
    	print(i)
    ->0,1,2,3,4
    
    for i in range(0,5,2):
    	print(i)
    ->0,2,4
    
    for i in range(0,5,3):
    	print(i)
    ->0,3
    

    列表倒序(逆序)输出:

    方法一:通过列表的反转函数进行倒序

    for i in range(4):
        print i
    ->0,1,2,3
    
    a = range(4) #-->range函数本身就是一个列表输出
    for i in reversed(a):
        print i
    ->3,2,1,0
    

    方法二:利用range本身的特性(左闭右开):

    #假如你想倒序5的range
    for i in range (5):
        print i
    ->0,1,2,3,4
    
    #因为左闭右开特性,这里start要取n-1 也就是4。
    for i in range(4,1,-1):
        print i
    ->4,3,2
    
    for i in range(4,0,-1):
        print i
    ->4,3,2,1
    
    #逆序
    for i in range(4,-1,-1):
        print i
    ->4,3,2,1,0
    
    

    方法三:利用下标切片逆序

    a = range(4) 
    #或者a = [0,1,2,3]
    for m in a[::-1]:
        print m
    ->3,2,1,0
    

    拓展:

    逆向访问特定区间值:

    l= [1,3,5,6,7,8]
    l[::-1][:3] #逆序后访问前三位 or
    l[-3:][::-1]#先访问后三位后逆序
    

    拓展:字符串反转的几种方法:

    1.字符串切片

    s = 'Hello,World'
    result = s[::-1]
    

    2.转列表使用reverse

    l = list(s)
    l.reverse()
    result = "".join(l)
    

    3.列表切片

    l = list(s)
    result = "".join(l[::-1])
    

    4.for循环遍历

    def func(s):
        result = ""
        max_index = len(s)-1
        for index,value in enumerate(s):
            result += s[max_index-index]
        return result
    result = func(s)
    

    5.模拟栈操作

    def func(s):
        l = list(s) #模拟全部入栈
        result = ""
        while len(l)>0:
            result += l.pop() #模拟出栈
        return result
    result = func(s)
    

    6.使用递归函数

    def func(s):
        if len(s) <1:
            return s
        return func(s[1:])+s[0]
    result = func(s)
    

    7.使用reduce函数

    reduce(lambda x, y: x+y, s) #正序
    reduce(lambda x, y: y+x, s) #逆序
    
  • 相关阅读:
    Thinkphp中如何书写按照指定字段同步更新的ORM
    一道money计算题引发的思考
    娱乐一下:汤姆君的大转盘算法(搞笑版)
    php导出数组到csv格式demo
    通过xshell/securecrt连接linux上传/下载文件
    windows设置代理.bat 脚本
    【面试题】输入并保存文件,完成后退出显示文件内容
    【设计模式学习笔记】 之 状态模式
    【学习笔记】FreeMarker 之于Servlet与Stuts2的应用
    【学习笔记】初识FreeMarker简单使用
  • 原文地址:https://www.cnblogs.com/xiaoqiangink/p/12971336.html
Copyright © 2011-2022 走看看