python(三) 元组 字典 集合

列表为可变数据类型

数字,字符串,元组为不可变数据类型

元组:

元组的建立:

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()
随机删除集合中的某个元素,并返回删除的元素














































































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值