Python中的列表操作
Python的列表操作可谓是功能强大且方便(相对于Java)
简单、常规的操作就不说了(这不是一个入门教程),介绍几个很有特点的例子 添加
# 追加到结尾(append)
li = [1, 2, 3, 4, 5]
li.append(6)
print('li = %s' % li)
# 输出:li = [1, 2, 3, 4, 5, 6] # 追加一个列表(extend)
li2 = ['a', 'b', 'c', 'd', 'e']
li.extend(li2)
print('li = %s' % li)
# 输出:li = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e'] # 列表和列表也可以做加法
li_plus = li + li2
print('li_plus = %s' % li_plus)
# 输出:li_plus = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
删除
# 删除列表中的元素
li = [1, 2, 3, 4, 5]
li.remove(3)
print('li = %s' % li)
# 输出:li = [1, 2, 4, 5]
# 根据索引删除元素
del li[3]
print('li = %s' % li)
# 输出:li = [1, 2, 4]
截取(又叫切片操作)
格式: [start:end:step] 。记住这个格式后你就可以发挥想象了
li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 每隔两个元素取一个
li2 = li[::2]
print('li2 = %s' % li2)
# 输出:li2 = [0, 2, 4, 6, 8, 10] # 最后一个元素
element = li[-1]
print('element = %s' % element)
# 输出:element = 10 # 拷贝(拷贝后是一个新对象)
li2 = list(li)
print('li2 = %s' % li2)
# 输出:li2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
提取并删除(pop)
li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 提取并删除最后一个元素
li.pop() # 等同于 li.pop(-1)
print('li = %s' % li)
# 输出:li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 提取并删除第一个元素(或第n个元素)
li.pop(0)
print('li = %s' % li)
# 输出:li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
排序
# 正序排列
li = [3, 1, 5, 8, 0, 9, 2, 6, 7, 4]
li.sort()
print('li = %s' % li)
# 输出:li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 倒序
li = [3, 1, 5, 8, 0, 9, 2, 6, 7, 4]
li.sort(reverse=True)
print('li = %s' % li)
# 输出:li = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] # 翻转(不是倒序排列)
li = [3, 1, 5, 8, 0, 9, 2, 6, 7, 4]
li.reverse()
print('li = %s' % li)
# 输出:li = [4, 7, 6, 2, 9, 0, 8, 5, 1, 3]
列表解析
根据已有列表,高效创建新列表的方式
格式: [expression for iter_val in iterable]
# 列表中的每一项取平方
li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2 = [i**2 for i in li]
print('li2 = %s' % li2)
# 输出:li2 = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 只有大于5的数才取平方。表达式也可以是if语句
li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2 = [i**2 if i > 5 else i for i in li]
print('li2 = %s' % li2)
# 输出:li2 = [0, 1, 2, 3, 4, 5, 36, 49, 64, 81]
格式: [expr for iter_var in iterable if cond_expr]
# 只取非None的元素
li = [0, 1, 2, 3, 4, 5, None, 6, 7, 8, 9]
li2 = [i for i in li if i is not None]
print('li2 = %s' % li2)
# 输出:li2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
格式: [expr for iter_var in iterable for var in iter_var]
# 展开一个二维列表
li = [[0, 1, 2], [3, 4, 5, 6], [7, 8, 9]]
li2 = [j for i in li for j in i]
print('li2 = %s' % li2)
# 输出:li2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
连接列表中的元素(join)
li = ['aaa', 'bbb', 'ccc', 'ddd']
li2 = ', '.join(li)
print('li2 = %s' % li2)
# 输出:li2 = aaa, bbb, ccc, ddd
Python中的列表操作的更多相关文章
- 【Python】Python中的列表操作
Python的列表操作可谓是功能强大且方便(相对于Java)简单.常规的操作就不说了(这不是一个入门教程),介绍几个很有特点的例子 添加 # 追加到结尾(append) li = [1, 2, 3, ...
- python中OS模块操作文件和目录
在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- python中的句柄操作
python中的句柄操作 制作人:全心全意 通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat ...
- python中序列的操作
Python中的序列操作 可变对象:列表.字典.集合 不可变对象:数值.字符串.元组.forzenset 1.序列的通用操作 (1)测试元素是否存在 x in S和x not in S,返回True或 ...
- Python编程之列表操作实例详解【创建、使用、更新、删除】
Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况
一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...
- (Python基础教程之八)Python中的list操作
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- julia与python中的列表解析.jl
julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...
随机推荐
- Mybatis基本用法--上
Mybatis基本用法--上 本文只是为自己查漏补缺.全面的请看官方文档,支持中英文 原理参考:http://blog.csdn.net/luanlouis/article/details/40422 ...
- Java基础总结--IO总结1
1.IO流(数据流)主要应用概述数据来源:存储在设备里面* IO流用来处理设备间数据之间的传输* Java对数据的操作是通过流的方式* Java用于对流的操作的对象都在IO包* 流按照流向分为:输出流 ...
- Angular通信$q服务和promise对象
promise 约定(promise)是一个对象,表示在未来时间点会发生的某件事情,约定可以是三种状态之一:等待.完成或拒绝.约定将从等待状态开始,然后可以转换为完成或者拒绝状态,一旦约定完成或者被拒 ...
- spark join操作解读
本文主要介绍spark join相关操作,Java描述. 讲述三个方法spark join,left-outer-join,right-outer-join 我们以实例来进行说明.我的实现步骤记录如下 ...
- Lua 5.3 协程简单示例
Lua 5.3 协程简单示例 来源 http://blog.csdn.net/vermilliontear/article/details/50547852 生产者->过滤器->消费者 模 ...
- 在jsp提交表单的参数封装到一个方法里
建议去看一下孤傲苍狼写的Servlet+JSP+JavaBean开发模式(http://www.cnblogs.com/xdp-gacl/p/3902537.html), 最好把他JavaWeb学习总 ...
- 基于JQuery EasyUI的WebMVC控件封装(含源码)
JQuery EasyUI类库,大家不会陌生,出来已经有很多年了.个人感觉还是很好用的,作者更新频率也很快,bug也及时修复. 最近在整理以前的代码,找到了这个组件,它是将EasyUI组件封装成MVC ...
- SQL Server远程连接(2)
- Phonegap开发相关问题
环境搭建:参考http://www.phonegapcn.com/start/zh/1.3/#android 调试: 1.在线远程调试 http://debug.phonegap.com/ 通过USB ...
- Struts2知识整理
准备找工作了.好忐忑!!! 整理整理知识,好好准备. 其实现在Struts2好像不是特别流行,不过还是有用武之地的. struts2简介 struts2是基于mvc开发模型的框架,属于表现层框架 核心 ...