我是小康小白,一个平平无奇的Java小白。热爱有趣的文字,生活和远方。 个人博客:https://blog.csdn.net/weixin_45791445 有问题欢迎QQ联系:1059320343 (记得备注) 个人微信公众号:小康小白
Python中的容器和list容器
在程序中,容器是一种可以把多个元素放在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in等关键字判断某个元素是否包含在容器中。
Python中的容器有包括列表(list)、元组(tuple)、字典(dict)、集合(set)等,他们都可以放入多个元素,因此都可以算作是容器。
list
列表(list)是一种有序的容器,放入list中的元素,将会按照一定顺序排列。
格式:
列表名 = [元素1,元素2,…]
list可以放入数字、字符串等数据类型,list不对放入其中的类型进行判断,也就是说,list可以同时放入任意类型的数据,这是Python这门语言决定的,因为Python是动态语言。
Python按顺序访问list:
列表是有序的,因此我们可以按顺序访问列表中的元素。可以利用for循环来访问字符串 中的每一个元素的这种方式称为迭代。之前使用过for循环访问字符串的每一个字符。事实上 ,字符串也可以看作是一种特殊的列表。Python按索引访问list
list是一个有序的容器。在list中每个元素的位置都是唯一的,我们称为索引(index),与字符串类似。可以通过[]来按位置访问对应的元素。
注意,这里要注意区分,列表的定义也是通过中括号[]来定义的,但这和通过索引访问列表里面的元素并不冲突。
实例: list中的索引是从0开始的。与数组类似,list也有越界问题。
同时list和字符串一样也支持切片方式获取列表的子列表。 但如果越界切片的话,不会出现运行时错误,但获取不到任何元素。
Python倒序访问list
Python中的倒叙访问list与正序的访问区别不大。 正序访问是将list集合中的元素按0,1,2,3…的顺序排列。 倒叙访问是将list集合中的元素按…-3,-2,-1的顺序排列。 两者访问的方式也是相同的。
同样,倒叙访问也存在越界问题,会报错。
实例:
Python向list中添加新的元素
方法一:append() 需要参数:你想要添加的元素。 效果:将元素添加到list的尾部。
方法二:insert() 需要参数:你想要添加的元素;你想要插入的位置。 效果:将元素添加到你想要插入的位置。 注意:在你插入这个元素到你想要的位置后,原本该位置的元素以及这个元素之后的元素都会自动向后移动一位。
Python从list中删除元素
方法:pop()
pop() 无参数。 效果:删除list列表的最后一个元素。pop(你想要删除元素的位置) 效果:删除指定位置的元素Python替换list中的元素
可以通过索引指定位置,并赋值新的元素来替换列表中原有的元素。
至于索引位置,既可以通过正序也可以通过倒叙。
Python二维list
列表名[ [ ] , [ ] , [ ] ] 二维列表与C语言中的二维数组类似,访问时通过双重下标访问。 例如 :列表名 [ ][ ]
元组(tuple)
与list类似,元组是一个有序容器。可以包含0-多个元素。支持索引访问,切片等多种操作。当然也有越界问题。
定义:
元组名( 元素,元素,......)其它类型的容器可以转换为元组。 元组可以转换成其它类型的容器。 但与list不同的是tuple是固定不变的,一旦变成了元组,其中的每一个元素就都不能发生改变了。当然向元组中添加数据也是不可以的,列表(list) 是允许的,且这个特性使在运行上性能使list的数倍。
Python中访问元组元素的方法
count()方法
此方法用来统计元组中某个元素的出现次数。当查询元素在元组中不存在时,会输出0.
index()方法
此方法可以返回指定元素的下标。当元素重复出现时,返回第一次出现的下标位置。 与count()方法不同的时,当元素不存在时,使用index()方法会报错。
Python中创建单个元素的tuple
定义包含0个元素的元组
T = ()定义包含一个元素的元组。
T = (1,)注意:定义只包含一个元素的元组时,需要在这一个元素后加一个逗号。不然单个括号括住的元素(就像这种(1)),既可以代表tuple,又可以作为括号表示运算时的优先级,结果(1)被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。因此,要定义只有一个元素的tuple,需要在元素后面添加一个逗号。
对于多个元素的元组,加不加逗号都是相同的。
Python的可变tuple
tuple里面的元素,也是不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。(组合数据类型就是元组中元素至少含有两中数据类型,例如元组中含有两个元素,一个是数字类型,一个是列表类型)。
为什么能实现这样的变化那?
是因为例如假设此时有一个组合数据类型的元组,其中含有一个列表类型的元素,我们更换列表中的元素后,元组本身指向的list并没有发生变化,改变的只是List中的一个元素,这是元组约束不到的地方。但如果直接将元组中的此列表元素更换成另一个list,那么是必然会报错的,因为元组元素不可变。
那么怎么样可以使得元组中的list不可变?将list转化为元组就好。
Python系列文章 python入门系列 小康小白
兄弟们,小白写文章不容易。希望各位读者老爷不要白嫖,点赞,评论,收藏,加关注。
对于白嫖的兄弟们