python入门(三)小康小白

it2025-04-09  19

我是小康小白,一个平平无奇的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入门系列 小康小白


兄弟们,小白写文章不容易。希望各位读者老爷不要白嫖,点赞,评论,收藏,加关注。

对于白嫖的兄弟们

最新回复(0)