python列表(四)

列表定义

打了激素的数组,是可变数据类型,可以修改元素。

索引

正向索引和反向索引
这里写图片描述

切片

这里写图片描述

重复,连接

这里写图片描述

成员操作符

这里写图片描述

追加元素到列表的最后:append
增加元素到列表的指定位置:insert
增加多个元素到列表最后:extend
这里写图片描述

通过列表的索引,对列表某个索引值重新赋值
这里写图片描述

统计某个元素在列表中出现的次数:count
找到某个值在列表中的索引值:index
这里写图片描述

删除列表中遇到的第一个value值:remove
删除指定索引对应的值,默认是最后一个元素:pop
删除列表中第i个索引值:del li[0]
删除列表对象:del li
这里写图片描述

这里写图片描述

其他的排序及逆转

排序,如果说都是数字,按照数字大小排序;
是字母的话,按照ASCII码来排序
如何查看对应的ASCII码? ord(‘a’)
这里写图片描述

内置方法

cmp
这里写图片描述
min, max
这里写图片描述
zip
这里写图片描述
enumerate
这里写图片描述

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


栈是先进后出(LIFO-first in last out);
类似于往箱子里面放书;
代码实现如下: (实际应用中这样太麻烦,将来会用类实现)

#!/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 "请输入正确的选择......"

队列
队列是先进先出(FIFO):
类似于去餐厅买饭排队;

#!/usr/bin/env python
#coding=utf-8

"""
实现队列,先进先出
1)入队enqueue
2)出队
3)查看队列长度
4)查看队列元素
"""
queue=[1,2,3,4,5]
while 1:
    print """
        1)入队
        2)出队
        3)查看队列
        4)退出
    """
    choice=raw_input("选择操作:")
    choice=choice.strip() #去掉输入操作里面的空格
    if choice == "1":
        a=raw_input("输入进去队列的元素:")
        queue.append(a)
    elif choice == "2":
        if len(queue)== 0: #判断队列是否为空
            print "穷的屁都没有了"
        else:
            queue.pop(0)  #删除第一个元素
    elif choice == "3":
        for i in queue:  #迭代输出
            print i,
    elif choice == "4":
        exit()
    else :
        print"重新选择:"
用户登录程序版本2:

用户名和密码分别保存在列表中;
用户登录时,判断该用户是否注册;
用户登录时,为防止黑客暴力破解, 仅有三次机会;
如果登录成功,显示登录成功(exit(), break).
知识点学习:
python中特有的while….else…语句
如果满足while后面的语句,执行while循环的程序, 如果不满足,执行else里面的程序.
提示: 用户名和密码一一对应

#!/usr/bin/env python
#coding:utf-8
# 存储用户名的列表;
users = ["user1", "user2", "user3"]
# 存储用户密码的列表;
passwds = ["123", "456", "789"]
trycount = 0
while trycount<3:
inname = raw_input("name:")
# 判断用户是否存在列表中;
if not inname in users:
print "用户未注册"
break
inpasswd = raw_input("password:")
# 找到用户在用户列表中的索引值,可以间接找到该用户对应的密码;
index = users.index(inname)
if inpasswd == passwds[index]:
print "登录成功!!"
break
print "ok"
else:
print "登录失败!!"
trycount += 1
else:
print "超过三次"
#!/usr/bin/env python
#coding=utf-8
#卡号有6位组成,前三位是610,后面的依次是001,002,003....100
l=[]
for i in range(1,101):
    a = "610%.3d" %(i)
    l.append(a)
b={}.fromkeys(l,"000000")

print b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值