1.什么是列表
其实在生活中,有很多种排队的现象。比如看电影要排队买票,上地铁的时候要排队安检。在生活中,排队的是人,为了统一做一件事,而排成队伍,逐个的去等待执行这个任务,每个人都是执行这个任务的参与者。
如同排队安检,队伍中的每个人都要参与安检的工作,不过有一个顺序的问题。列表也是如此。列表里的很多数据,这些数据被集合在一起,然后一个个的等待参与某个任务的执行。
列表就是为了将这些数据集合起来而存在的。所以说:
列表就是队列。
因为列表里会存在多种数据,所以:
它是各种数据类型的集合,因为列表存储的灵活性,也称为是一种数据结构。
列表是一种有序,且内容可重复的集合类型。
在平时生活中排队的时候,也不关心有没有重名的人或者说有没有双胞胎的情况。
2.列表的定义
在python中,list代表着列表这种类型,也可以用它定义一个列表。
通过type函数,传入一个列表的时候,返回的是list这个单词,list也是可以定义列表的内置函数。
在python中,列表中的元素存在于一个[]中。
和字符串、数字一样,即便不用list函数,也可以通过特殊的符号来定义列表。在python中,列表元素可以用一对[]来定义。
每一个列表里面的数据都是这个列表里面的成员(元素),这和字符串的叫法是一致的。
这里有一个好的规范:在列表中,第二个成员开始,每一个成员对于前一个成员、逗号,之间要有一个空格。当然,即便没有空格,程序也不会报错。强调的是代码美观整洁也是能力与性格的体现。
在python中,列表是一个无限制长度的数据结构。
但是,尽量避免去处理一个非常大的列表。比如定义了一个列表,里面有一千万条数据,当我们创建了一个变量的时候,内存管家给列表创建了一个家。但是这个家里要住下一千万的成员,很担心内存的这个小房子会不会撑爆了。
而且有一千万条数据一个一个的等待处理,感觉又是一个非常漫长的事情。所以大家应该避免创建超大列表的情况。如果数据真的很多,在最初的学习中可以考虑把这些数据分配到多个列表中去执行。
3.列表中的类型
mix_array =['dewei',1,3.14,None,True]
只有一个空格的字符串,也属于非空字符串。0也是整型。列表中可以继续再嵌套列表,这种结构非常复杂的列表,一般只有在非常专业的领域才会用到。
混合类型列表:列表里可以放置各种数据类型,再放一个列表和它们这些数据结构在一起也是没问题的。
4.in,max,min在列表中的使用
因为数据类型不统一,max和min不知道判断的标准是什么,所以就报错了。
5.代码
#coding:utf-8none_list=[None,None,None]print(none_list)
print(bool(none_list))
print(len(none_list))
print([])
print(bool([]))max_list=[1,3.14]
print(max_list)
print(max(max_list))
print(min(max_list))id_address=id(max_list)
print(id_address)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/.venv/bin/python /Users/llq/PycharmProjects/pythonlearn/pythonlearn1/list_test.py
[None, None, None]
True
3
[]
False
[1, 3.14]
3.14
1
4347793024进程已结束,退出代码为 0
虽然none_list里面有好几个None,但是每一个None都占据了这个列表的一个位置,所以这个列表的位置不再是空的。那么这个列表就是一个true的代表了。
只要列表的内容不为空或者列表的长度不为0,它就是一个true的状态。如果列表的长度是0,那么它就是一个false的状态。
一个列表里有很多内容,这些内容会不会分别住在不同的空间呢?
实际上不是的。一个列表里面有很多的内容,这些内容会随着这个列表生存在唯一的一个内存空间里。
每一次重新启动脚本,它的地址会发生变化。当我们使用完毕一个元素的时候,内存的管理员就会认为没有人使用它,就会把它轰出去了。
每执行完一次脚本,脚本执行完成了,所以内存管家发现这些变量已经不用了,所以就把它们赶了出去。
只要在程序不关闭的情况下,列表可以不停的添加内容,并且地址是不会发生变更的。