python列表各种切片姿势
顺着切,反着切,想怎么切就怎么切,但是别被坑。
mylist = [1,2,3,4,5,6,7,8,9]
print(mylist[2:7:2]) # [3, 5, 7]
print(mylist[:7:2]) # [1, 3, 5, 7]
print(mylist[2::2]) # [3, 5, 7, 9]
print(mylist[2:9:2]) # [3, 5, 7, 9]
print(mylist[2:10:2]) # [3, 5, 7, 9]
print(mylist[::2]) # [1, 3, 5, 7, 9]
print(mylist[7:2:2]) # []
print(mylist[2:7:-2]) # []
print(mylist[7:2:-2]) # [8, 6, 4]
print('============')
print(mylist[-2:-7:-2]) # [8, 6, 4]
print(mylist[:-7:-2]) # [9, 7, 5]
print(mylist[-2::-2]) # [8, 6, 4, 2]
print(mylist[-2:-10:-2]) # [8, 6, 4, 2]
print(mylist[::-2]) # [9, 7, 5, 3, 1]
print(mylist[-7:-2:-2]) # []
print(mylist[-2:-7:2]) # []
print(mylist[-7:-2:2]) # [3, 5, 7]
步长如果是整数,开始要小于结束,否则结果肯定为空
步长如果是负数,开始要大于结束,否则结果肯定为空
# 反转
print(mylist[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1]
mylist.reverse()
print(mylist) # [9, 8, 7, 6, 5, 4, 3, 2, 1]
左闭右开
print([1,2,3,4,5,6,7,8,9][1:3:]) # [2, 3]
print([1,2,3,4,5,6,7,8,9][-1:-7:-1]) # [9, 8, 7, 6, 5, 4]
python列表各种切片姿势的更多相关文章
- Python列表的切片操作
在Python列表中分片是一个很重要的操作,有以下几个注意的点: 切片时不包含最后一位,如下例子中,要取最后一位,从0开始算应该是到7就可以取,但是需要8才能取 2. 默认取值步长为1,即每 ...
- python列表的切片操作允许索引超出范围
其余的不说,列表切片操作允许索引超出范围:
- Python 列表的切片和连接
一.定义一个list >>> a = [1, 3, 4, 5, 'a', 's'] >>> a [1, 3, 4, 5, 'a', 's'] 二.获取列表中前3个元 ...
- python列表的切片与复制
切片,即处理一个完整列表中部分数据. 语法 变量[起始索引:终止索引:步长] 首先创建一个字符串列表 >>> cars = ['toyota', 'honda', 'mazda', ...
- python 列表操作-切片
- Python 列表切片陷阱:引用、复制与深复制
Python 列表的切片和赋值操作很基础,之前也遇到过一些坑,以为自己很懂了.但今天刷 Codewars 时发现了一个更大的坑,故在此记录. Python 列表赋值:复制"值"还是 ...
- Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...
- python 列表切片
列表切片是python语言独有的特征,大大方便了我们的编码. 首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数. insert,get,set 操作均可传入负数下 ...
- Python创建二维列表的正确姿势
Python创建二维列表的正确姿势 简介 Python中没有数组,使用list结构代替,并且list结构的功能更加强大: 支持动态扩容,无需担心元素过量 对list内的元素类型不做一致性约束 提供丰富 ...
随机推荐
- window 运行spark报错
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties // :: ERROR Shell: F ...
- inux centos7下源码 tar安装5.7.26详解
inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...
- java面向对象的基本概念
面向对象的基本概念 这里先介绍面向对象程序设计的一些关键概念,并开始使用类,你需要学习一些术语,我们尽量用比较浅显的语言来介绍,因为这些内容都比较重要,所以希望大家好好好理解. 一.什么是对象和面向对 ...
- ELK学习笔记之Kibana安装配置
Kibana 是一个开源的分析和可视化平台,是ELK的重要部分.Kibana提供搜索.查看和与存储在 Elasticsearch 索引中的数据进行交互的功能.开发者或运维人员可以轻松地执行高级数据分析 ...
- Kafka跨集群迁移方案MirrorMaker原理、使用以及性能调优实践
序言Kakfa MirrorMaker是Kafka 官方提供的跨数据中心的流数据同步方案.其实现原理,其实就是通过从Source Cluster消费消息然后将消息生产到Target Cluster,即 ...
- 1.0EnterpriseFrameWork 框架学习
1.先报其主页 :博主的框架是开源的 http://www.cnblogs.com/kakake/p/3938262.html . 2.学习的精髓是:该框架支持 ORM.SQL语句 和 存储过程 ,O ...
- js图片压缩+ajax上传
图片压缩用到了localresizeimg 地址: https://github.com/think2011/localResizeIMG 用起来比较简单 <input type="f ...
- jQuery---bootstrap的下载使用,栅格(12个格子),轮播图,矢量图字体图标,进度条,选项卡,标签,表达校验
jQuery---bootstrap的下载使用,栅格(12个格子),轮播图,矢量图字体图标,进度条,选项卡,标签,表达校验 一丶bootstrap的使用 下载资源文件: bootstrap官网 导入 ...
- [摘抄] 4.require命令
4.require命令 1. 基本用法 Node适用CommonJS模块规范,内置的require命令用于加载模块文件. require命令的基本功能是,读入并执行一个JavaScript文件,然后返 ...
- CSS 过渡动画
一.过渡 过渡(transition)是CSS3中具有颠覆性的特征之一,可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 在CSS3 ...