笑谈python基本数据类型 列表list&元组tuple

                                                                            列表

     python中list的写法让我们不经想起java和c中的数组。但python中的列表比数组功能更加强大,主要体现在两个方面:

    1.不需要指定长度,长度动态分配

    2.列表中可以存放各种各样的数据类型

   

    列表是可变的,有序的。列表可以嵌套。


   关于列表的存储方式:这里参考于:

https://www.cnblogs.com/c-x-a/p/8964990.html

  1.如果列表中存储的是同一种数据类型的数据,则列表中元素的地址是连续的,采用顺序表结构存储。可以通过下标进行访问。这种情况下则类似与java、c语言中的数组

 2.如果列表中的数据不是同一种数据类型,此时就不是采用顺序表存储了,而是首先对每个元素分配好空间,空间不一定连续,然后把地址值作为数据存储到另外的空间中,一个内存地址占用四个字节,这个时候内存地址的数据占用的四个地址空间是连续的。

    如下图表示:

笑谈python基本数据类型 列表list&元组tuple


list的常用方法:


append(e)//在列表的末尾添加元素,并且一次只能添加一个元素。

笑谈python基本数据类型 列表list&元组tuple

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

笑谈python基本数据类型 列表list&元组tuple

注意一个细节:

笑谈python基本数据类型 列表list&元组tuple

当企图这样输出时,发现输出结果为none,可以推出append()方法没有返回值



extend(e)//e是有限制的,必须是可迭代的,我们可以通俗地理解为带下标的。int/bool/float就不通过extend()方法添加。

如果e是字符串,那么会循环遍历该字符串,将字符串一个一个字符取出,然后添加到集合中

如果e是列表/元祖,也是循环遍历取出,然后再添加到列表

如果e是集合,则是循环遍历取出集合中的key,然后再添加到列表中

笑谈python基本数据类型 列表list&元组tuple


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

笑谈python基本数据类型 列表list&元组tuple



del

笑谈python基本数据类型 列表list&元组tuple

pop(index)//通过下标删除

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

笑谈python基本数据类型 列表list&元组tuple

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

笑谈python基本数据类型 列表list&元组tuple

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


clear()//清空列表

笑谈python基本数据类型 列表list&元组tuple


笑谈python基本数据类型 列表list&元组tuple




其他操作:

sort();//无返回值

笑谈python基本数据类型 列表list&元组tuple

笑谈python基本数据类型 列表list&元组tuple

通过上述操作,我们可以知道,sort()方法对字母排序时是按照ascii表的顺序.中文排序方式未知。

sorted()

sorted()//返回一个排好序的新列表,保存了原来的列表,而sort()不保存原来的列表。

笑谈python基本数据类型 列表list&元组tuple


此外:

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

笑谈python基本数据类型 列表list&元组tuple


逆序

reverse()//逆序排列

笑谈python基本数据类型 列表list&元组tuple

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

笑谈python基本数据类型 列表list&元组tuple

这里存在困惑,个人推测,这个方法,reversed(e)内部调用了类似与java中的toString方法,但没有重写toString(),所以返回的是地址值。


len()/count()/与字符串中用法基本一致,不再赘述。


支持+ *

笑谈python基本数据类型 列表list&元组tuple




                                                                                    元组

        元组与list很类似,只不过元组比列表多了许多限制:

        1.元组中的数据必须是不可变类型

        2.元组中的一级元素不允许修改。

        注意事项:当元组中只有一个元素时,需要在元素后面添加一个逗号,否则会被当作运算符使用。

        笑谈python基本数据类型 列表list&元组tuple

       

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

        笑谈python基本数据类型 列表list&元组tuple

        删除元祖:del(t)

笑谈python基本数据类型 列表list&元组tuple


len()/count()与用法字符串基本一致,不再赘述。