*****************列表的定义*****************

list:打了激素的数组,数组只能存储同一种数据类型的结构;
*)• 定义一个空列表

In [30]: list = []
In [31]: type(list)
Out[31]: list

• 定义一个包含元素的列表,元素可以是任意类

型,包括数值类型,列表,字符串等均可。

Screenshot from 2018-01-07 16-15-27.png

Screenshot from 2018-01-07 16-19-08.png

与元组的对比,元组是不可变数据类型,不能修改元素;

*)分析列表特性

•列表的索引

In [47]: list = ['huan',21,'happy',(1,),[1,2]]

In [48]: list[0]  正向索引 list[0]读取的是列表的第1个元素;
Out[48]: 'huan'
In [49]: list[-1] 反向索引 list[-1]读取的是列表的倒数第1个元素;
Out[49]: [1, 2]
In [50]: list[::-1] 列表逆置
Out[50]: [[1, 2], (1,), 'happy', 21, 'huan']
拿出列表的最后一个元素,最后一个元素是列表,再拿出列表的第一个元素
In [54]: list = ['huan',21,'happy',(1,),[1,2]]
In [55]: list[-1][0]
Out[55]: 1

Screenshot from 2018-01-07 16-24-28.png

•列表的切片

In [60]: list

Out[60]: ['huan', 21, 'happy', (1,), [1, 2]]
In [61]: list[1:]  去掉列表的第一个元素
Out[61]: [21, 'happy', (1,), [1, 2]]
In [62]: list[:1]  显示列表的第一个元素
Out[62]: ['huan']

Screenshot from 2018-01-07 16-34-58.png

In [64]: list[::-1] 逆序显示

Screenshot from 2018-01-07 16-36-22.png

In [51]: list

Out[51]: ['huan', 21, 'happy', (1,), [1, 2]]
In [52]: list[0:3:2]               • 0代表从哪个索引开始切片;
Out[52]: ['huan', 'happy']    • 3代表切片到哪个位置,并且不包含第三个索              
                                         • 2代表切片的步长;
In [53]: list[0:3:1]
Out[53]: ['huan', 21, 'happy']

Screenshot from 2018-01-07 16-31-28.png

•列表的重复和连接

In [67]: list1 = [1,2,3]

In [68]: list2 = ['a','b','c']
In [69]: list1 + list2   列表的连接
Out[69]: [1, 2, 3, 'a', 'b', 'c']
In [70]: list1*2   列表的重复
Out[70]: [1, 2, 3, 1, 2, 3]

Screenshot from 2018-01-07 16-38-14.png

•成员操作符

Screenshot from 2018-01-07 16-40-56.png

*)列表的增删改查

*******增

In [84]: list.append('everyone')  在列表中加入元素,所加元素在列表最后

Screenshot from 2018-01-07 16-46-00.png

In [95]: list.insert(0,'fentiao')  在指定位置加入元素

Screenshot from 2018-01-07 16-50-53.png

In [97]: list.extend('lala')  增加多个元素在列表最后 

*)                                        *

iterable代表可迭代的;                       *
目前学习的可迭代对象有:str list tuple         *

********改

通过列表的索引,对列表的某个索引值重新附值

In [120]: list[0] = 'dabai' 将列表的第一个元素改变

********查

统计某个元素在列表中出现的次数;

In [124]: list = ['ha','ha','hei','you']
In [125]: list.count('ha')
Out[125]: 2
找到某个值字在列表中的索引值;
In [126]: list.index('you')
Out[126]: 3

Screenshot from 2018-01-07 17-06-46.png

******删

In [127]: list
Out[127]: ['ha', 'ha', 'hei', 'you']
In [128]: list.remove('ha')  删除列表中遇到的第一个value值;
In [129]: list
Out[129]: ['ha', 'hei', 'you']
In [130]: del list[1]   删除列表中第i个索引值;
In [131]: list
Out[131]: ['ha', 'you']
In [132]: del list   删除列表对象
In [133]: list
Out[133]: list

Screenshot from 2018-01-07 17-10-03.png

*)其他的排序及逆转

In [137]: list = [1,2,3,4,5]
In [138]: list.reverse()  将列表的元素逆转
In [139]: list
Out[139]: [5, 4, 3, 2, 1]

Screenshot from 2018-01-07 17-46-01.png

排序,如果都是数字,按照数字大小排序;

有字母的话,按照ASCII码来排序;

Screenshot from 2018-01-07 18-01-16.png

查看对应的ASCII码值

删除指定索引对应的值,默认是最后一个元素;

删除列表的指定元素,指定索引值;

练习:

1.用户和密码分别保存到列表中;
2.用户登录时,判断该用户是否注册;
3.用户登录时,为防止***暴力破解,仅有三次机会;
4.如果登录成功,显示登录成功

********列表构建栈和队列数据结构

***栈
栈是先进后出(LIFO)
(可以想象为往箱子里放东西)

*********************栈操作*******************

       1).入栈
       2).出栈
       3).栈长度
       4).查看栈
       5).退出
请输入你的选择:"""

Screenshot from 2018-01-07 18-41-03.png

Screenshot from 2018-01-07 18-42-00.png

****队列

queue : 先进先出(FIFO)
Screenshot from 2018-01-07 19-51-48.png

Screenshot from 2018-01-07 19-52-01.png