列表:
正向索引和反向索引:
In [2]: li = [1,1.1,"westos",(1,2,3,4),[1,2,3,4]]
In [3]: print li
[1, 1.1, 'westos', (1, 2, 3, 4), [1, 2, 3, 4]]
In [16]: li [::-1]
Out[16]: [[1, 2, 3, 4], (1, 2, 3, 4), 'westos', 7, 1]
In [17]: li [0]
Out[17]: 1
In [18]: li [-1]
Out[18]: [1, 2, 3, 4]
拿出最后的一个元素,在哪出最后一个元素列表的第三个个元素
In [19]: li [-1][3]
Out[19]: 4
切片:
In [10]: li [1:]
Out[10]: [7, 'westos', (1, 2, 3, 4), [1, 2, 3, 4]]
In [11]: li [-1:]
Out[11]: [[1, 2, 3, 4]]
In [12]: print li
[1, 7, 'westos', (1, 2, 3, 4), [1, 2, 3, 4]]
In [13]: li [2]
Out[13]: 'westos'
In [14]: print li
[1, 7, 'westos', (1, 2, 3, 4), [1, 2, 3, 4]]
逆序显示:
n [16]: li [::-1]
Out[16]: [[1, 2, 3, 4], (1, 2, 3, 4), 'westos', 7, 1]
列表的增删改查:
append:追加元素到列表的最后:
In [20]: ip = ["192.168.0.1","172.25.2.4","192.1680.101","192.168.6.4"]
In [21]: ip.append("192.168.0.201")
In [22]: print ip
['192.168.0.1', '172.25.2.4', '192.1680.101', '192.168.6.4', '192.168.0.201']
insert:增加元素到列表的指定位置:
In [22]: print ip
['192.168.0.1', '172.25.2.4', '192.1680.101', '192.168.6.4', '192.168.0.201']
In [23]: ip.insert(1,"192.168.0.2")
In [24]: print ip
['192.168.0.1', '192.168.0.2', '172.25.2.4', '192.1680.101', '192.168.6.4', '192.168.0.201']
extend:增加多个元素到列表的最后:
In [26]: ip.extend(["1.1.1.1","2.2.2.2"])
In [27]: print ip
['192.168.0.1', '192.168.0.2', '172.25.2.4', '192.1680.101', '192.168.6.4', '192.168.0.201', '1.1.1.1', '2.2.2.2']
通过列表的索引,对列表的某个索引值重新赋值:
In [28]: ip[2]= "1.1.1.1"
In [29]: print ip
['192.168.0.1', '192.168.0.2', '1.1.1.1', '192.1680.101', '192.168.6.4', '192.168.0.201', '1.1.1.1', '2.2.2.2']
count:统计某个元素到列表出现的次数:
In [30]: ip.count("1.1.1.1")
Out[30]: 2
index:找到某个值在列表的索引值:
In [31]: ip.index("2.2.2.2")
Out[31]: 7
删除指定列表的value值:
In [32]: ip.remove("192.1680.101")
In [33]: print ip
['192.168.0.1', '192.168.0.2', '1.1.1.1', '192.168.6.4', '192.168.0.201', '1.1.1.1', '2.2.2.2']
del 删除列表中第i个索引值:
In [34]: del ip[2]
In [35]: print ip
['192.168.0.1', '192.168.0.2', '192.168.6.4', '192.168.0.201', '1.1.1.1', '2.2.2.2']
pop 删除指定索引对应的值。默认是最后的一个元素,pop(0)删除列表第一个元素:
In [36]: ip.pop()
Out[36]: '2.2.2.2'
In [37]: print ip
['192.168.0.1', '192.168.0.2', '192.168.6.4', '192.168.0.201', '1.1.1.1']
其他排序及逆转:
如果都是数字,按照数字大小排序:
如果是字母,按照ascii码来排序:
列表的练习:
#! /usr/bin/env python
#coding:utf-8
trycount = 0
while trycount<3:
inname = raw_input("name:")
name = ["root","123","haha"]
inpasswd = raw_input("password:")
password = ["westos","123","haha"]
index = name.index(inname)
if inpasswd == password[index]:
print "登录成功!!"
exit()
else:
print "登录失败!!"
trycount += 1
else:
print "超过三次"
列表构建栈和队列数据结构:
栈是先进后出:
#!/usr/bin/env python #coding:utf-8 stack = [] info = """ 栈操作 1). 入栈 2). 出栈 3). 栈长度 4). 查看栈 5). 退出 请输入你的选择:""" # 死循环 while True: 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 "请输入正确的选择......"
队列:
队列是先进先出:
#! /usr/bin/env python
#coding:utf-8
queue = ["cao","ni","mei"]
print """
队列操作
1) 入对:enqueue
2) 出对:
3) 查处队列
4) 退出
请输入你的选择:"""
while True:
choice = raw_input().strip()
if choice == "1":
value = raw_input("请输出队列元素:")
queue.append(value)
elif choice == "2":
if not queue:
print "对为空"
else:
queue.pop(0)
elif choice == "3":
if not queue:
print "对为空"
for i in queue:
print i
elif choice == "4":
exit()
else:
print "请输出正确选择"
卡号由6位组成, 前3位是610, 后面的依次是001, 002, 003...100
cardids = []
for i in range(1, 101): # i = 1, 2, 3, 4...100
a = "610%.3d" %(i) # a= 610001, 610002, 610003, ....610100
cardids.append(a)
# print cardids # cardids是列表
# 卡号显示,每10个卡号换行显示;
for i, j in enumerate(cardids): # i,j = 0 610001
if i%10==0:
print
print j,
#! /usr/bin/env python
#coding:utf-8
l = []
for i in range(1,101):
a = "610%.3d" %(i)
l.append(a)
print {}.fromkeys(l,"000000")