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文档 ...
随机推荐
- EF异常探究(An entity object cannot be referenced by multiple instances of IEntityChangeTracker.)
今天在改造以前旧项目时出现了一项BUG,是由于以前不规范的EF写法所导致.异常信息如下: "An entity object cannot be referenced by multiple ...
- 做直线不要使用hr
需要横线.竖线时不要使用hr标签来做,容易出问题,可以使用高度或宽度为1px并加上背景色的div.p代替.
- gsoap入门实例
环境VS2008,gsoap_2.8,win7 实例场景:在客户端输入一个字符串,然后传递给服务端计算字符串长度并返回给客户端(附加一些加减乘除法的实现): 将..\gsoap-2.8\gsoap\b ...
- 使用javascript编写根据用户鼠标控制背景图片的移动
在一家VR公司做前端. 起初进入前端就是一种内心的直觉,创造更好的用户体验,让页面更加友好,当然最起初接手web项目还是为了完成毕业设计. 一个网上图书商城,虽然不大,但五脏都有毕竟开刀所以避免不了很 ...
- undefined 与void 0
参考:https://segmentfault.com/a/1190000000474941 Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值.void 操作符用法 ...
- python添加自定义cookies
import cookielib,urllib2 class AddCookieHandler(urllib2.BaseHandler): def __init__(self,cookieValue) ...
- StringBulider与StringBuffer的异同
相同点:两者的功能都是相同的,没有任何差别. 不同点:StringBulider 不是同步的,也是线程不安全的,当使用多线程处理缓冲区时,不能使用.但是单线程访问的时候效率高,如果是单线程处理缓冲区资 ...
- 表空间与数据文件Offline,online的区别
首先明确,表空间与数据文件的关系:Oracle数据库表空间有两种,一种smallfile小文件表空间(默认),另一种bigfile大文件表空间: 默认表空间与数据文件的关系:允许一对多的处理方式,一个 ...
- 利用C#转换图片格式及转换为ico
注意:转换为ICO后效果不好. 源代码: using System;using System.Collections.Generic;using System.Text;using System.Dr ...
- C#连接六类数据库的代码集
本文列出了C#连接Access.SQL Server.Oracle.MySQL.DB2和SyBase六种不同数据库的程序源码和需要注意的点. 1.C#连接Access 程序代码: ;