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

 

转载于:https://www.cnblogs.com/yanglang/p/7992676.html

【Python】Python中的列表操作相关推荐

  1. python 类中定义列表_Python-从类定义中的列表理解访问类变量

    小编典典 类范围和列表,集合或字典的理解以及生成器表达式不混合. 为什么:或者,官方用词 在Python 3中,为列表理解赋予了它们自己的适当范围(本地名称空间),以防止其局部变量渗入周围的范围内(即 ...

  2. Python基础学习之列表操作

    Python基础学习之列表操作 文章目录 Python基础学习之列表操作 1. 列表的增,删,改,查 1.1 列表的增加,常用的方法有:append, extent, incert 1.2 列表的删除 ...

  3. 在python程序中的进程操作

    ********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...

  4. python在中小学教学中的应用-在python程序中的进程操作

    ********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...

  5. python中的列表操作

    列表:(list) 容器类型:某个对象包含对其它对象的引用,则将其称为容器. 列表可以包含任何种类的对象(数字.字串.甚至嵌套其他列表,可以嵌套元组) 内部包含:任意对象的有序集合,通过索引访问其中的 ...

  6. php调用python pkl_Python中的Pickle操作(pkl文件解释)

    Python中的Pickle操作(pkl文件解释) 标签:#python##序列化# 时间:2019/03/11 16:43:55 作者:小木 作为数据科学家,您将以字典(dict).数据框(Data ...

  7. python函数中把列表(list)当参数时的入坑与出坑

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑. 入坑 挖坑 def f(x,li=[]):for i in range(x):li.append(i*i ...

  8. 【python】中的“.T”操作:转置

    python中的".T"操作 - 回忆瞬间 - 博客园 https://www.cnblogs.com/peixu/p/7991715.html 其实就是对一个矩阵的转置. 看代码 ...

  9. python sorted下标_Python列表操作最全面总结

    1.列表添加元素 列表中可以使用append.insert.extend方法实现元素的添加. append会把新元素添加到列表末尾 "a", insert(index, objec ...

最新文章

  1. Spark写Redis+Spark资源配置总结
  2. java虚拟机通俗_JAVA虚拟机的通俗解释
  3. KafkaController介绍
  4. 关于jquery的取消阻止默认事件
  5. 学习计算机如何有一个质的飞越?
  6. EDA技术及应用实验2 h_adder程序
  7. 1602液晶引见(电路和引脚图)
  8. c语言谱曲软件,基于C语言的音乐谱曲技巧与应用研究
  9. 5G NR SSB 学习
  10. flutter 应用 adb shell input swipe 命令失效
  11. 微信小程序uni-app
  12. 编码格式问题 错误:JSON parse error: Invalid UTF-8 middle byte 0x3f
  13. 3u VPX主板**
  14. Android 6.0以下检测摄像头权限
  15. 面试必问 | 聊聊MyBatis执行流程?
  16. 【数字图像处理】直方图均衡化与规定化
  17. distinct mysql性能_MySQL中distinct与group by之间的性能进行比较
  18. iphone界面元素的尺寸[转]
  19. 留给房产公司抛售房子的时间最多5个月
  20. 节点网络计划图计算机,网络计划图教程

热门文章

  1. 分析jQuery源码时记录的一点感悟
  2. 话里话外:“按单制造”的业务特点(一)
  3. 时尚的基因是创新 -- 旺旺平台产品线员工大会即兴发言提要
  4. MOSS 2007的备份与恢复
  5. 01_AssignmentOperator详细解释
  6. debconf: DbDriver config: /var/cache/debconf/config.dat is locked by another process
  7. oracle簇表 数据抽取,Oracle聚簇表
  8. 【机器学习】最大熵模型(Maximum Entropy Model)
  9. statusbar 尺寸 显示图标_StatusBar 图标展示流程 - 状态栏(StatusBar)镜头布局分析...- git完代码后的异常_169IT.COM...
  10. Oracle报错:类型长度大于最大值解决办法