博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python内置数据类型之List篇
阅读量:6565 次
发布时间:2019-06-24

本文共 1644 字,大约阅读时间需要 5 分钟。

List的定义:

li = ["one" , "two" , "three" , "four"]

List是一个有序的集合,这点不同于Dictionary(Dictionary是无序的)。

(1)索引和切片

索引有正负之分,正索引下标从0开始,负索引下标从-1开始。比如:

>>> li[0]'one'>>> li[3]'four'>>> li[-1]'four'>>> li[-4]'one'

通过两个索引得到List的一个子集,我们称之为切片。

>>> li[-1:-4][]>>> li[-4:-1]['one', 'two', 'three']

我们可以看出:1)区间是左闭右开的;

       2)不管两个索引的正负,只需要保证在List中第一个索引是在第二个索引的左边,得到的子集就不会是空的。

切片的简写,如果缺失第一个索引,那默认是从0开始;如果缺失第二个索引,那默认是直到List的最后一个元素(最后一个元素是算在内的,我们可以认为此时是一个无穷大的值);如果两个索引都缺失,这将包括 list 的所有元素,但是与原始的名为 li 的 List 不同,它是一个新 List,恰好拥有与li一样的全部元素。li[:] 是生成一个 list 完全拷贝的一个简写,就像是copy方法。

向List添加元素:

>>> li.append("five");>>> li['one', 'two', 'three', 'four', 'five']>>> li.insert(3,"six");>>> li['one', 'two', 'three', 'six', 'four', 'five'] >>> li.extend(["seven","eight"]); >>> li ['one', 'two', 'three', 'six', 'four', 'five', 'seven', 'eight']

List中的元素值不一定互不相同,可以有相同的。

>>> li.append(["nine","ten"]);>>> li['one', 'two', 'three', 'six', 'four', 'five', 'seven', 'eight', ['nine', 'ten']]

List 的两个方法 extendappend 看起来类似,但实际上完全不同。extend 接受一个参数,这个参数总是一个 List,并且把这个 List 中的每个元素添加到原 List 中。append 接受一个参数,这个参数可以是任何数据类型,并且简单地追加到 List 的尾部。

List的搜索:

>>> "one" in liTrue>>> li.index("one");0>>> li.index("two");1

如果一个值在List中出现多次,那么index返回的是这个值首次出现的下标。

List的删除:

>>> li.remove("one");>>> li['two', 'three', 'six', 'four', 'five', 'seven', 'eight', ['nine', 'ten']]>>> li.pop();['nine', 'ten']>>> li['two', 'three', 'six', 'four', 'five', 'seven', 'eight']

同样,如果一个值多次出现,remove仅仅是删除首次出现的那个。

List的运算符:

>>> li += ["eleven"];>>> li['two', 'three', 'six', 'four', 'five', 'seven', 'eight', 'eleven']>>> li = [1,2]*3;>>> li[1, 2, 1, 2, 1, 2]

转载于:https://www.cnblogs.com/RainingDays/p/3503891.html

你可能感兴趣的文章
onAttachedToWindow和onDetachedFromWindow调用时机源码解析
查看>>
根据Servlet的Filter自定义实现字符编码过滤器
查看>>
oh-my-zsh安装与配置
查看>>
团队随笔
查看>>
1.7 文件目录管理及相关的命令使用方法
查看>>
PDF中添加页面/合并 PDF 内容
查看>>
JS仿FLASH特效可跳转回首页的CSS二级联动菜单
查看>>
页面导入样式时,使用link和@import有什么区别?
查看>>
类成员与类的实例成员
查看>>
Spark源码编译并在YARN上运行WordCount实例
查看>>
Spring AOP + AspectJ annotation example
查看>>
Spring VS EJB 3 的若干认识误区(转)
查看>>
React.js初探(一)
查看>>
Neo4j CQL -(17)- NULL值
查看>>
BZOJ4554: [Tjoi2016&Heoi2016]游戏 luoguP2825 loj2057
查看>>
json_encode后的中文不编码成unicode
查看>>
修改纵断面图标注栏
查看>>
Flex创建带有空间信息的椭圆(Polygon)
查看>>
【转】参照protobuf,将json数据转换成二进制在网络中传输。
查看>>
java异常常见面试问题
查看>>