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文档 ...
随机推荐
- Spark: Job in detail
1.sc.runJob -> dagScheduler.runJob -> submitJob 2.DAGSchedueler::submitJob 会创建 JobSubmitted 的 ...
- Bootstrap--下拉菜单.dropdown
下拉菜单.dropdown .dropdown <下拉菜单触发器button+下拉菜单ul> .dropdown 包裹层 .dropdown-toggle 下拉菜单触发器 data-to ...
- Go 终极指南:编写一个 Go 工具
https://arslan.io/2017/09/14/the-ultimate-guide-to-writing-a-go-tool/ 作者:Fatih Arslan 译者:oopsguy.com ...
- 12.21-Android WebService(基于KSOAP2)
KSOAP2_连接WebService *****我是小知识点******** Ksoap2提供了对soap序列化更好的支持.Ksoap2是一个轻量级的J2ME平台的实现框架,提供了soap协议消息的 ...
- java实现在线文档浏览
目前发现两种方法: 1.http://dxx23.iteye.com/blog/1947083 FlexPaper+SWFTools ,java实现在线文档浏览 2.webOffice
- MongoDB全文检索
1. 全文检索概念: 全文检索是对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式. (暂时不支持中文) ...
- [Scikit-learn] 4.4 Dimensionality reduction - PCA
2.5. Decomposing signals in components (matrix factorization problems) 2.5.1. Principal component an ...
- Python 抽象篇:面向对象之类的方法与属性
概览:类成员之字段:-普通字段,保存在对象中,执行职能通过对象访问-静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问类成员之方法:-普通方法,保存在类中,由对象来调用,self->对 ...
- Leetcode题解(31)
103. Binary Tree Zigzag Level Order Traversal 题目 分析: 广度优先遍历的应用.重点是掌握vector的reverse函数,一开始我忘记有这个函数了,琢磨 ...
- Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型的转为utf-8的解决办法
相信小伙伴们遇到过类似这样的问题,python2中各种头疼的转码,类似u'\xe6\x97\xa0\xe5\x90\x8d' 的编码,直接s.decode()是无法解决编码问题.尝试了无数办法,都无法 ...