当前位置: 首页 > news >正文

python学习笔记——列表

列表是可以改变的,列表支持通用序列操作

1、list 函数

根据字符串创建列表

 >>> list('hello')
['h', 'e', 'l', 'l', 'o']

 

2、列表操作

元素赋值

使用索引标记来为某个特定的、位置明确的元素赋值

 >>> x = [1,1,1]
>>> x[1] = 2
>>> x
[1, 2, 1]

元素删除

del 删除列表中的元素

 >>> del x[1]
>>> x
[1, 1]

分片赋值

一次为多个元素赋值,可以使用与原序列不等长的序列将分片替换

 >>> name = list('perl')
>>> name
['p', 'e', 'r', 'l']
>>> name[2:] = list('ar')
>>> name
['p', 'e', 'a', 'r']
>>> name[1:] = list('ython')
>>> name
['p', 'y', 't', 'h', 'o', 'n']

分片赋值语句也可以用于插入新元素

 >>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4]
>>> numbers
[1, 2, 3, 4, 5]

同理删除元素也可以

3、列表的方法

方法的调用: 对像.方法(参数)

append 方法:在列表末尾追加新的元素

 >>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

append方法是直接修改原列表,而不是返回一个新的列表

count 方法:统计某个元素在列表中出现的次数

 >>> 'lihuipeng'.count('i')
2

extend 方法:在列表的末尾一次性追加另一个序列中的多个值

 >>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

index 方法:从列表中找出某个值第一个匹配项的索引位置

 >>> worlds = ['aa', 'bbb']
>>> worlds.index('aa')
0

insert 方法:将元素插入到列表中

 >>> a
[1, 2, 3, 4, 5, 6]
>>> a.insert(0,'li')
>>> a
['li', 1, 2, 3, 4, 5, 6]

pop 方法:移除最后一个元素

 >>> a
['li', 1, 2, 3, 4, 5, 6]
>>> a.pop()
6
>>> a
['li', 1, 2, 3, 4, 5]

pop方法会将移除的元素返回

remove 方法:移除列表中某个值的第一个匹配项

 >>> a
['li', 1, 2, 3, 4, 5]
>>> a.remove('li')
>>> a
[1, 2, 3, 4, 5]

reverse 方法:将列表中的元素反向存放

 >>> a
[1, 2, 3, 4, 5]
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]

sort 方法:对列表进行排序

 >>> a
[5, 4, 3, 2, 1]
>>> a
[5, 4, 3, 2, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

sorted 方法:获取已排序的列表副本

 >>> a
[5, 4, 3, 2, 1]
>>> b = sorted(a)
>>> b
[1, 2, 3, 4, 5]
>>> a
[5, 4, 3, 2, 1]

key参数:可以指定一个函数来排序

reverse参数:是否进行反向排序

 >>> x = ['aardvark','abalone','acme','add','aerate']
>>> x
['aardvark', 'abalone', 'acme', 'add', 'aerate']
>>> x.sort(key=len)
>>> x
['add', 'acme', 'aerate', 'abalone', 'aardvark']
>>> x.sort(reverse=True)
>>> x
['aerate', 'add', 'acme', 'abalone', 'aardvark']

 本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/857579如需转载请自行联系原作者


lihuipeng

相关文章:

  • 揭秘入围央采的锐捷大数据安全平台是什么东西?
  • Xcode调试断点不停止解决方案!
  • 把字符串转化为类型
  • Android中文API(127) —— MessageQueue
  • Hadoop Hive与Hbase关系 整合
  • ss命令使用示例
  • 深入浅出Attribute(中)——Attribute本质论
  • HTML与XML总结
  • Excel2003常用快捷键
  • 微软发布预览版SQL Server跨平台开发工具
  • vsphere 5.1进行Hypervisor嵌套
  • Vbs脚本编程简明教程之四
  • Oracle RAC 跨节点并行运算
  • sed命令 学习笔记
  • 在linux中添加新硬盘并创建LVM组
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【笔记】你不知道的JS读书笔记——Promise
  • 07.Android之多媒体问题
  • angular2开源库收集
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • PHP变量
  • springMvc学习笔记(2)
  • 编写符合Python风格的对象
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 仿天猫超市收藏抛物线动画工具库
  • 坑!为什么View.startAnimation不起作用?
  • 每天10道Java面试题,跟我走,offer有!
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 再次简单明了总结flex布局,一看就懂...
  • 字符串匹配基础上
  • hi-nginx-1.3.4编译安装
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 积累各种好的链接
  • 树莓派用上kodexplorer也能玩成私有网盘
  • #mysql 8.0 踩坑日记
  • (1)bark-ml
  • (C语言)二分查找 超详细
  • (floyd+补集) poj 3275
  • (二十三)Flask之高频面试点
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (十八)三元表达式和列表解析
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)基于IDEA的JAVA基础10
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转) 深度模型优化性能 调参
  • (转)Scala的“=”符号简介
  • (转)一些感悟
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • . Flume面试题
  • .a文件和.so文件
  • .libPaths()设置包加载目录
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .Net Memory Profiler的使用举例
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)