列表为可变数据类型
数字,字符串,元组为不可变数据类型
元组:
元组的建立:
tu = (1,) #单个元组的建立后面必须加“ , ”
tu= ("hello",1)
工厂方法:t = tuple([1,2,"hello"])
元组同样具有索引,切片,连接,重复,成员操作符特性
内置方法:cmp,len,max,min,enumerate(枚举),zip
pyhon相较于c等语言,具有数据交换的简洁方式:x,y=y,x
利用zip可以让元组和列表中的元素一一对应:
元组的删除:
del(tuple)
元组的操作方法
• t.count(value)-->int
返回value在元组中出现的次数;
• t.index(value)
返回value在元组中的偏移量(即索引值)
##字典dict
字典的特点
1. 查找和插入的速度极快,不会随着key的增加而增加;
2. 使用键-值(key-value)存储,需要占用大量的内存,内存浪费多
简单字典的创建:
dict = {"name":"westos","age":18,"mail":"westos@qq.com"}
还可以通过zio创建:
dict = zip(a,b) ##a ,b 为元组或者列表
3.内建方法:fromkeys
字典中的key有相同的value值,默认为None
字典中key-value值的添加:
dic[key] = value
通过这个操作,我们会发现字典是无序的数据类型
dict.key -
dict.items
更改:d.update
按key 删除:d.pop
案例一:
用户分别输入选择 1 和2 ,如果输入不再程序范围内 则报错,反之依据选择作出相应的运算
#!/usr/bin/env python # coding:utf-8 num1 = input("num1:") oper = raw_input("Operator('+','-','*','/'):") num2 = input("num2:") d = { '+':num1 +num2, '-':num1-num2, '*':num1*num2, '/':num1/num2 } if not oper in d: print "not vaild operator" else: print d.get(oper) 方法二: result = d.get(oper) if None: print "not vaild" print result
案例二:
用字典的方式实现用户登录系统
#!/usr/bin/env python # coding:utf-8 user_info = { 'westos':{'username':"westos", 'password':"redhat", 'age':18, 'mail':'westos@qq.com' } } info = """ 用户管理系统 1.用户注册 2.用户登陆 3.删除用户 4.用户信息查看 5.退出登陆 """ print info while True: choice = raw_input("Choice:") if choice == '1': addname = raw_input("请输入想要建立的用户名:") if addname in user_info: print "用户已经被注册" else: user_info.update(username = {'username':addname}) passwd = raw_input("请输入你的密码:") user_info.update(username = {'password':passwd}) age = raw_input("年龄:") user_info.update(username = {'age': age}) print "注册成功" elif choice == '2': trycount = 0 while trycount < 3: trycount +=1 in_user = raw_input("输入用户名:") if in_user not in user_info: print "用户未注册" break in_passwd = raw_input("输入密码:") if in_passwd == user_info[in_user]['password']: print "登陆成功" break else: print "密码错误" else: print "超过三次" elif choice == '3': userdel =raw_input("请输入你想要删除的用户:") if userdel not in user_info: print "用户不存在" else: passwddel = raw_input("请输入密码:").strip() if passwddel not in user_info[uesrdel]['password']: print "密码错误" else: print "用户已经被删除" elif choice == '4': usercheck = raw_input("请输入你要查看的用户名:") cat = user_info.get(usercheck) print cat elif choice == '5': exit()![]()
##集合
集合是一个无序的,不重复的数据组合。
• 列表去重
• 关系测试:如交集、差集、并集的关系测试
集合的关系测试操作
• 交集: list_1 & list_2
• 并集: list_1 | list_2
• 差集: list_1 - list_2
list_2 - list_1
•
对等差分
list_1 ^ list_2
• 交集: list_1.intersection(list_2)
• 并集: list_1.union(list_2)
• 差集: list_1.difference(list_2)
list_2.difference(list_1)
• 对等差分 list_1.symmetric_difference(list_2)
• 子集 list_1.issubset(list_2)
• 父集 list_1.issuperset(list_2)
• 有无交集 list_1.isdisjoint(list_2)
集合的添加和删除
添加:s.add 添加一项
s.update 添加多项,跟的参数为可迭代类型
s.remove(1)
删除集合中指定的元素• s.pop()
随机删除集合中的某个元素,并返回删除的元素