Python中什么可以切片

  • l  Python中符合序列的有序序列都支持切片(slice)
  • l  如:列表,字符,元祖

Python中切片的格式

  • l  格式:[start : end : step]
  • l  Start:起始索引,从0开始,-1表示结束
  • l  End:结束索引
  • l  Step:步长
  • l  end-start=正数时,从左向右取值,=负数时反向取值
  • l  注意:切片结果不包含结束索引,即不包含最后一位,-1代表最后一个位置索引

常用的几种方式:

  • l  [:] 如:list2=list1[:] 全部截取
  • l  [0:1:n] 如:list1[0:3;1] 从0开始到3每次增加1截取,不包含索引结束位置
  • l  [0:-1:1]:从0开始到结束,每次增加1,截取不包含索引结束位置
  • l  [:3]:默认从起始位置索引,每次增加1截取,结束位置索引为3
  • l  [3:0:-1]反向取值,每次增加1截取,不包含索引结束位置

直接看例子会更直观一些

  • l

    list1 = ['ji','yan','jiao']
    list2 = list1[:]
    print('list1[:] 打印出的结果为:',list2)
    '''
    打印结果:
    list1[:] 打印出的结果为: ['ji', 'yan', 'jiao']
    '''
    list1 = ['ji','yan','jiao']
    list3 = list1[0:1:1]
    list3_1 = list1[0:2:1]
    list3_2 = list1[0:2:2]
    list3_2_1 = list1[0:3:2]
    list3_3 = list1[0:-1:1]
    print('list1[0:1:1] 打印的结果为:',list3)
    print('list1[0:2:1] 打印的结果为:',list3_1)
    print('list1[0:2:2] 打印的结果为:',list3_2)
    print('list1[0:3:2] 打印的结果为:',list3_2_1)
    print('list1[0:-1:1] 打印的结果为:',list3_3)
    '''
    打印结果:
    list1[0:1:1] 打印的结果为: ['ji']
    list1[0:2:1] 打印的结果为: ['ji', 'yan']
    list1[0:2:2] 打印的结果为: ['ji']
    list1[0:3:2] 打印的结果为: ['ji', 'jiao']
    list1[0:-1:1] 打印的结果为: ['ji', 'yan']
    ''' list1 = ['ji','yan','jiao']
    list4 = list1[:2]
    list4_1 = list1[:3]
    print(' list1[:2]打印结果为:',list4)
    print(' list1[:3]打印结果为:',list4_1)
    '''
    打印结果:
    list1[:2]打印结果为: ['ji', 'yan']
    list1[:3]打印结果为: ['ji', 'yan', 'jiao']
    '''
    list1 = ['ji','yan','jiao']
    list5 = list1[2:0:-1]
    list5_1 = list1[2:0:-2]
    print(' list1[2:0:-1]打印结果为:',list5)
    print(' list1[2:0:-2]打印结果为:',list5_1)
    '''
    打印结果:
    list1[2:0:-1]打印结果为: ['jiao', 'yan']
    list1[2:0:-2]打印结果为: ['jiao']
    '''

python中切片的理解的更多相关文章

  1. Python中切片的应用

    Python中切片的应用 Python中可以通过切片实现对列表或者字符串取指定范围的操作,实际就是通过对列表或者字符串通过索引进行操作. 具体细节点击廖雪峰Python教程,其中的课后小问题在此记录下 ...

  2. Python中使用@的理解

    Python函数中使用@ 稍提一下的基础 fun 和fun()的区别 以一段代码为例: def fun(): print('fun') return None a = fun() #fun函数并将返回 ...

  3. 转载-对于Python中@property的理解和使用

    原文链接:https://blog.csdn.net/u013205877/article/details/77804137 重看狗书,看到对User表定义的时候有下面两行 @property def ...

  4. Python中yield深入理解

    众所周知,python中的yield有这样的用法: def test(alist): for i in alist: yield i 这样,这个test函数就变成了一个生成器,当每次调用的时候,就会自 ...

  5. python中Metaclass的理解

    今天在学习<python3爬虫开发实战>中看到这样一段代码3 class ProxyMetaclass(type): def __new__(cls, name, bases, attrs ...

  6. python中*args, **kwargs理解

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  7. python 05 关于对python中引用的理解

    数据的在内存中的地址就是数据的引用. 如果两个变量为同一个引用,那么这两个变量对应的数据一定相同: 如果两个变量对应的数据相同,引用不一定相同. 通过id(数据)可以查看数据对应的地址,修改变量的值, ...

  8. 深入理解python(一)python语法总结:基础知识和对python中对象的理解

    用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会 ...

  9. Python中生成器的理解

    1.生成器的定义 在Python中一边循环一边计算的机制,称为生成器 2.为什么要有生成器 列表所有的数据都存在内存中,如果有海量的数据将非常耗内存 如:仅仅需要访问前面几个元素,那后面绝大多数元素占 ...

随机推荐

  1. 解决win7 win10上网卡慢问题

    在管理员身份运行CMD命令行,然后输入netsh interface tcp set global autotuninglevel=disable 即可.

  2. Centos7之Systemd(Service文件)详解

    一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下面的命令(以httpd. ...

  3. 怎么用npm发布一个包,详细教程

    我们已经实现了路由的自动化构建,但是我们可以看到,一大串代码怼在里面.当然你也可以说,把它封装在一个JS文件里面,然后使用require('./autoRoute.js')给引入进来,那也行.但是,为 ...

  4. AtCoder Beginner Contest 053

    D - Card Eater Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Snuke h ...

  5. #Leetcode# 1016. Binary String With Substrings Representing 1 To N

    https://leetcode.com/problems/binary-string-with-substrings-representing-1-to-n/ Given a binary stri ...

  6. vue单页面模板说明文档(2)

    Linter Configuration This boilerplate uses ESLint as the linter, and uses the Standard preset with s ...

  7. oracle查询不走索引的一些情况(索引失效)

    Oracle建立索引的目的是为了避免全表扫描,提高查询的效率. 但是有些情况下发现即使建立了索引,但是写出来的查询还是很慢,然后会发现是索引失效导致的,所以需要了解一下那些情况会导致索引失效,即查询不 ...

  8. Java案例-用户注册邮箱绑定激活功能实现

    <–start–> 需求描述:当客户打开收到邮箱激活码的邮件,点击激活链接,正确填写激活码后就会完成邮箱激活的步骤. 在后台编程代码编写中,有以下几个要点: ① 接收客户的手机号码和邮箱激 ...

  9. Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)

    在使用git push命令将本地仓库内容推送至GitHub远程仓库的每一次git都要让我们输入GitHub的用户名和密码.这着实让我们心烦.我们会有疑问,我明明设置了公钥呀!怎么还需要输入账户和密码? ...

  10. day 7-6 多线程及开启方式

    一. 什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程 ...