zoukankan      html  css  js  c++  java
  • Python学习之高级特性

    切片

    在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取。这种方法可以帮助我们依次获取我们想要的元素。而切片可以帮助我们获取被切片元素的副本。

    可序列对象切片时所需要的参数[start_index:stop_index:step]

    start_index:切片的起始位置

    stop_index:切片的结束为止(不包括)

    step:步长,可选参数。默认值是1,但不能为0.表示依次递增。

    假设testList=[1,2,3,4,5,6,7,8,9]
    操作
    解释 输出
    print(testList)
    打印测试列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(testList[:])
    输出列表中所有元素 [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(testList[1:7:2])
    从第二个开始,到第8个元素(不包含),每次间隔2个元素 [2,4,6]
    
    
    print(testList[:5])
    
    
     从第一个开始,到第6个(不包含),默认间隔1个元素  [1,2,3,4,5]
     print(testList[-5:])  从右往左第五个开始至最后一个元素结束,默认间隔1个元素  [5,6,7,8,9]
    print(testList[::2]) 从第一个开始,到最后一个结束,每次间隔2个元素 [1,3,5,7,9]
    print(testList[::-1]) 从第一个开始,至最后一个结束,倒序间隔一个元素 [9, 8, 7, 6, 5, 4, 3, 2, 1]
    testList[1:2]=['a']
    print(testList)
     从第2个元素开始,第三个元素结束(不包含),插入并替换该区间元素  [1, 'a', 3, 4, 5, 6, 7, 8, 9]
    del testList[1]
    print(testList)
     删除第二个元素,请注意,这时只是从原来对象中的副本中删除后重新获取一个新的引用对象。  [1, 3, 4, 5, 6, 7, 8, 9]
    
    
    del testList[1::2]
    
    
     从第二个元素开始删除对象元素,至最后一个元素结束,每次间隔2个  [1, 3, 5, 7, 9]

    迭代

    在开发语言中,遍历获取可序列对象我们称之为迭代。Python中,不仅可以像其他语言一样迭代可序列对象还可以迭代任意可序列化对象。例如 字典,字符串,元祖

    案例
    解释 输出
    testList=[1,2,3]
    for i in testList:
    print(i)
    迭代列表

    3

    testStr='hello'
    for i in testStr:
    print(i)
    迭代字符串

    h

    e

    l

    l

    o

    testDic={'name':'zhangsan','age':18}
    for i in testDic:
    print(i)
    循环字典,默认输出key

    name

    age

    判断一个元素是否可以被迭代

    在Python中可以通过collections模块的Iterable类型判断元素是否可以被迭代,当元素允许被迭代时返回True,反之返回False

    from collections import Iterable
    案例 解释 输出
     a=isinstance('abc',Iterable)
    print(a)
     判断字符串(python中'a'也将作为字符串"a")使用 True
     testList=[1,2,3]
    a=isinstance(testList,Iterable)
    print(a)
     判断列表 True
     testDict={'name':'zhangsan','age':18}
    a=isinstance(testDict,Iterable)
    print(a)
     判断字典 True
     testTuple=(1,2,3)
    a=isinstance(testTuple,Iterable)
    print(a)
     判断元祖 True
     testInt=123
    a=isinstance(testInt,Iterable)
    print(a)
     判断数值 False

     

    列表生成式

    Python中列表生成式不仅可以迭代输出对象元素,还可以简化我们的代码。

    例如 我们需要得到10以内n*n
    
    for循环
    列表生成式  
    l=[]
    for x in range(1,11):
    l.append(x*x)
    print(l)
    n=[x*x for x in range(1,11)]
    print(n)
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    列表生成式与if条件一起使用

    仅输出能被2整除的数
    for 循环
    列表生成式 输出
    l=[1,2,4,5,6,7,8,9]
    k=[]
    for i in l:
    if i %2==0:
    k.append(i)
    print(k)
    l=[1,2,4,5,6,7,8,9]
    n=[x for x in l if x%2==0 ]
    print(n)
    [2,4,6,8]

    列表生成式与字典一起使用

    for循环 列表生成式 输出
    testDict={'name':'zhangsan','age':18}
    for n in testDict:
    print(n+'=:'+str(testDict[n]))
    testDict={'name':'zhangsan','age':18}
    b=[ k +'=' +str(v) for k ,v in testDict.items()]
    print(b)
    name=:zhangsan
    age=:18

    ['name=zhangsan', 'age=18']

                                  

  • 相关阅读:
    在新浪爱问上看到的有趣名字都记下来
    FastReports_4.14.1 _Cliff手动安装
    计算机算法对做事效率的启发(既要高强度猛攻,也要细水长流)
    有趣的数组
    listView 分页加载数据
    如何隐藏Cognos Viewer
    使用DBUnit实现对数据库的测试
    通过Jasmine和Guard自动测试JavaScript
    for惠普2013实习生
    栈的顺序存储,所谓的顺序栈
  • 原文地址:https://www.cnblogs.com/SunIan/p/9693648.html
Copyright © 2011-2022 走看看