【Python】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程序中的进程操作,multiprocess.Process模块
在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...
- Python程序中的进程操作--—--开启多进程
Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...
- Python程序中的线程操作(线程池)-concurrent模块
目录 Python程序中的线程操作(线程池)-concurrent模块 一.Python标准模块--concurrent.futures 二.介绍 三.基本方法 四.ProcessPoolExecut ...
- TCL语言笔记:TCL中的列表操作
一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...
- Python中的列表操作
Python的列表操作可谓是功能强大且方便(相对于Java)简单.常规的操作就不说了(这不是一个入门教程),介绍几个很有特点的例子 添加 # 追加到结尾(append) li = [1, 2, 3, ...
- 29、Python程序中的进程操作(multiprocess.process)
一.multiprocess模块 multiprocess不是一个模块而是python中一个操作.管理进程的包. 子模块分为四个部分: 创建进程部分 进程同步部分 进程池部分 进程之间数据共享 二.m ...
- Python函数中的列表
在看21天的Python书中写出了一个陷阱,但没给出解释,以下为代码陷阱
- 在python程序中的进程操作
multiprocess模块 multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所 ...
随机推荐
- Linux 下 gcc 与 g++的差别
参考网易博客者"静心"的博客--<gcc与g++的区别>结合自己的认识做出的个人领悟.(由于个人水平有限,难免会存在错误的地方,请见谅) 一般而言,在Linux下编译程 ...
- Zookeeper原理和实战开发经典视频教程 百度云网盘下载
Zookeeper原理和实战开发 经典视频教程 百度云网盘下载 资源下载地址:http://pan.baidu.com/s/1o7ZjPeM 密码:r5yf
- 20145226夏艺华 逆向及Bof基础实践
逆向及Bof基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串,如图所示: 该程序同时 ...
- MVC PartialView 方式实现点击加载更多
<table id="MovieListing"> </table><div> <button id="btnShowMore& ...
- 北京Uber优步司机奖励政策(4月5日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Qt 学习之路 2
Qt 学习之路 2 | DevBean Tech World Qt 学习之路 2 Qt 学习之路 2 目录
- 【原创】linux命令-Axel命令 - linux多线程下载 - 费元星 - 未来星开发团队
[费元星版权Q:9715234] Axel 是 Linux 下一个不错的HTTP/FTP高速下载工具.支持多线程下载.断点续[费元星版权Q:9715234]传,且可以从多个地址或者从一个地址的多个连接 ...
- ping telnet 指令
Ping 一 作用 ping能够辨别网络功能的某些状态,这些状态是日常网络故障诊断的基础.Ping能够识别连接的二进制状态(看是否连通).Ping命令通过过向计算机发送ICMP回应报文并监听回应报文的 ...
- 解决CentOS下可以ping通ip ping不通域名
现象:1. ping不通域名,比如 www.qq.com 2. 可以ping通ip,比如 61.135.157.156 分析:1. 查看DNS配置文件 /etc/resolve.conf, 里面的服务 ...
- HashMap在并发场景下踩过的坑
本文来自网易云社区 作者:张伟 关于HashMap在并发场景下的问题有很多人,很多公司遇到过!也很多人总结过,我们很多时候都认为这样都坑距离自己很远,自己一定不会掉入这样都坑.可是我们随时都有就遇到了 ...