列表
python中list的写法让我们不经想起java和c中的数组。但python中的列表比数组功能更加强大,主要体现在两个方面:
1.不需要指定长度,长度动态分配
2.列表中可以存放各种各样的数据类型
列表是可变的,有序的。列表可以嵌套。
关于列表的存储方式:这里参考于:
1.如果列表中存储的是同一种数据类型的数据,则列表中元素的地址是连续的,采用顺序表结构存储。可以通过下标进行访问。这种情况下则类似与java、c语言中的数组
2.如果列表中的数据不是同一种数据类型,此时就不是采用顺序表存储了,而是首先对每个元素分配好空间,空间不一定连续,然后把地址值作为数据存储到另外的空间中,一个内存地址占用四个字节,这个时候内存地址的数据占用的四个地址空间是连续的。
如下图表示:

list的常用方法:
增
append(e)//在列表的末尾添加元素,并且一次只能添加一个元素。

如果e是列表、元祖、集合,则把他们作为一个整体加到列表末尾处

注意一个细节:

当企图这样输出时,发现输出结果为none,可以推出append()方法没有返回值
extend(e)//e是有限制的,必须是可迭代的,我们可以通俗地理解为带下标的。int/bool/float就不通过extend()方法添加。
如果e是字符串,那么会循环遍历该字符串,将字符串一个一个字符取出,然后添加到集合中
如果e是列表/元祖,也是循环遍历取出,然后再添加到列表
如果e是集合,则是循环遍历取出集合中的key,然后再添加到列表中

insert(index,e)//在指定位置插入元素

删
del

pop(index)//通过下标删除
使用pop(index)方法删除时,会得到一个返回值

remove(e)//通过元素删除

通过上面的测试,我们可以推出,使用remove(e)方法删除时,会循环遍历列表,匹配我们传入的参数,并删除第一次出现的位置的元素。如果要删除的元素不存在,则报错。
clear()//清空列表

改

其他操作:
sort();//无返回值


通过上述操作,我们可以知道,sort()方法对字母排序时是按照ascii表的顺序.中文排序方式未知。
sorted()
sorted()//返回一个排好序的新列表,保存了原来的列表,而sort()不保存原来的列表。

此外:
sorted(e)适用于其他任何数据类型,以列表的形式返回

逆序
reverse()//逆序排列

reversed(e)////返回一个逆序后的新列表,保存了原来的列表,而reverse()不保存原来的列表。

这里存在困惑,个人推测,这个方法,reversed(e)内部调用了类似与java中的toString方法,但没有重写toString(),所以返回的是地址值。
len()/count()/与字符串中用法基本一致,不再赘述。
支持+ *

元组
元组与list很类似,只不过元组比列表多了许多限制:
1.元组中的数据必须是不可变类型
2.元组中的一级元素不允许修改。
注意事项:当元组中只有一个元素时,需要在元素后面添加一个逗号,否则会被当作运算符使用。

对于元祖,我们可以修改他的非一级元素

删除元祖:del(t)

len()/count()与用法字符串基本一致,不再赘述。
本文详细介绍了Python中列表和元组的特点与用法,包括列表的动态长度、多种数据类型支持、常用方法如append、extend等,以及元组的不可变性和使用限制。
4万+

被折叠的 条评论
为什么被折叠?



