zoukankan      html  css  js  c++  java
  • 数据类型--索引和切片(字符串、元祖、列表适用)

    序列:

    字符串,列表,元祖都被称为序列类型数据(可迭代、可被for循环的)

    索引和切片的概念:
    1、索引同样可以是负数,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。


    2、切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。
    注意这与你使用的索引操作十分相似。记住数是可选的,而冒号是必须的。

    3、切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片刀那里结束。如果不指定第一个数,python就从序列首开始。如果没有指定第二个数,则python会停止序列尾。

    注意:
    返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包办在序列切片中的,而结束位置被排斥在切片外。(顾头不顾尾)
    shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。
    shoplist[:]返回整个序列的拷贝。你可以用负数做切片。
    负数用在从序列尾开始计算的位置。例如:shoplist[:1]会返回除了最后一个项目包含所有项目的序列切片。

    索引:

    例如:a='abcde'  每个符号都有自己的一个数据位置,可以通过索引来找到独立的字母位置,在abcde的字母中的数据位置分别为01234。可以使用下面语法进行提取数据位置:

    1 >>> a='abcde'
    2 
    3 >>> a[0]
    4 'a'
    5 
    6 >>> a[1]
    7 'b'

    但是当需要提取2个字符串位置的时候这时就会出现报错:

     1 >>> a[0][1]
     2 
     3 Traceback (most recent call last):
     4 File "<stdin>", line 1, in <module>
     5 IndexError: string index out of range
     6 
     7 
     8 或者,连续提取两个字母时报错:
     9 >>> a[0]a[1]
    10   File "<stdin>", line 1
    11     a[0]a[1]
    12         ^
    13 SyntaxError: invalid syntax

    如果想要提取2个字符串位置可以使用 '+'进行连接:

    1 >>> a[0]+a[1]
    2 'ab'

    切片

    由于每个字符都有自己的索引,可以通过索引提取字符串的一个范围。
    语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
    语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

     1 1、从前面开始取一直到第四位:
     2 >>> a[:4]
     3 'abcd'
     4  
     5  
     6 2、从第四个开始取值
     7 >>> a[4:]
     8 'e'
     9  
    10  
    11 3、从第二个开始去到最后
    12 >>> a[2:]
    13 'cde'

    步长值

    每隔多少个字符取一次值。

    语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
    语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

     1 1、每隔1个字符取值
     2 >>> a[::1]
     3 'abcde'
     4  
     6 2、每隔2个字符取值
     7 >>> a[::2]
     8 'ace'
     9  
    11 3、每隔3个字符取值
    12 >>> a[::3]
    13 'ad'
    14  
    16 4、通过负数的方式取值:
    17 从倒数第一位取值
    18 >>> a[-1]
    19 'e'
    20  
    22 5、从倒数第二位取值
    23 >>> a[-2]
    24 'd'
    25 
    26 >>> a[-4:-1]
    27 'bcd'

    反向取值

    步长不包含本身。需要提前取值。
    python默认是从左向右取值。一般不用负数取值,但是如果是反向取值,还是需要用负数。

    语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
    语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

    1 >>> a[-1:-3:-1]
    2 'ed'
    3 
    4 >>> a[-1:-5:-1]
    5 'edcb'
    6 
    7 >>> a[-1:-6:-1]
    8 'edcba'
  • 相关阅读:
    上手 WebRTC DTLS 遇到很多 BUG?浅谈 DTLS Fragment
    亮相 LiveVideoStackCon,透析阿里云窄带高清的现在与未来
    会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准
    如何用 Electron + WebRTC 开发一个跨平台的视频会议应用
    理论 + 标准 + 工程 —— 阿里云视频云编码优化的思考与发现
    遍历哈希表
    sql语句的循环执行
    一个aspx页面里所有的控件
    SELECT DISTINCT 语句
    100 The 3n + 1 problem
  • 原文地址:https://www.cnblogs.com/abobo/p/8033250.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com