一.列表的定义
• 定义一个空列表
list = []
• 定义一个包含元素的列表,元素可以是任意类型,包括数值类型,列表,字符串,元组等均可。
• 元组是不可变数据类型不能修改元素,列表是可变数据类型可以修改元素!
二.列表的索引
•下标是从0开始计算,比如list[0]读取的是列表的第1个元素;
•list[-1]读取的是列表的倒数第1个元素;
•正向索引
•反向索引
•拿出列表最后一个元素, 最后一个元素是列表, 再拿出列表的第一个元素
三.列表的切片
• 0代表从哪个索引开始切片;
• 3代表切片到哪个位置,并且不包含第三个索引;
• 2代表切片的步长;
•去掉列表的第一个元素li[1:]
•逆序显示li[::-1]

•重复,连接操作
li * 2 # 不建议这样连接两个列表,后面有效率更高的方法 ;
li1 = ["westos", "new year"]
li+li1
•成员操作符

四.列表的增,删,改,查
•增加
例:ip白名单
追加元素到列表的最后:allow_ip.append()
增加元素到列表的指定位置:allow_ip.insert(0, "192.168.1.253")
# iterable 代表可迭代的;目前学习的可迭代对象有 : str, list, tuple
增加多个元素到列表最后:allow_ip.extend(["172.25.254.44", "172.25.254.55"])
•修改
# 通过列表的索引,对列表某个索引值重新赋值:allow_ip[0] = "192.168.1.1
•查看
统计某个元素在列表中出现的次数 :shopping.count("apple")
找到某个值在列表中的索引值: shopping.index("computer")
•删除
删除列表中遇到的第一个 value 值:shopping.remove("apple")

删除列表中第 i 个索引值:del shopping[0]

删除除了第一个元素之外的其他索引值:del list1[1:]

删除列表对象:del shopping

删除指定索引对应的值,默认是最后一个元素 :li.pop()

删除列表的第一个索引 :li.pop(0)

五.列表元素的排序及逆转
•排序,如果说都是数字,按照数字大小排序 ;

•如果是字母,按照 ASCII 码来排序;

•如何查看对应的 ASCII 码 ? ord('a')

•逆转; li[::-1]

六.列表构建栈和队列数据结构
(一)栈:先进后出 first in last out --->>类似往容器里面放东西
#!/usr/bin/env python
#coding:utf-8
stack = []
info = """
栈操作
1). 入栈
2). 出栈
3). 栈长度
4). 查看栈
5). 退出
请输入你的选择:"""
# 死循环
while 1:
choice = raw_input(info).strip()
if choice == "1":
print "入栈操作".center(40, "*")
value = raw_input("请输入入栈元素:")
stack.append(value)
print "元素%s入栈成功..." %(value)
elif choice == "2":
print "出栈操作".center(40, "*")
# if len(stack) == 0:
if not stack:
print "栈为空"
else:
item = stack.pop()
print "元素%s出栈成功...." %(item)
elif choice == "3":
print "查看栈长度".center(40, "*")
print len(stack)
elif choice == "4":
print "查看栈元素".center(40, "*")
if not stack:
print "栈为空"
for i in stack:
print i,
elif choice == "5":
exit()
else:
print "请输入正确的选择!"



(二)队列:先进先出 first in first out --->>类似排队购物
#!/usr/bin/env python
#coding:utf-8
Queue = []
info = """
队列操作
1). 入队
2). 出队
3). 查看队列
4). 退出
请输入你的选择:"""
# 死循环
while 1:
choice = raw_input(info).strip()
if choice == "1":
print "入队操作".center(40, "*")
value = raw_input("请输入入队元素:")
Queue.append(value)
print "元素%s入队成功..." %(value)
elif choice == "2":
print "出队操作".center(40, "*")
# if len(Queue) == 0:
if not Queue:
print "队列为空"
else:
item = Queue.pop()
print "元素%s出队成功...." %(item)
elif choice == "3":
print "查看队列元素".center(40, "*")
if not Queue:
print "队列为空"
for i in Queue:
print i,
elif choice == "4":
exit()
else:
print "请输入正确的选择!"
