学习python第四天02【set集合】

set:集合是一个无序不重复元素的集(用哈希算法计算位置)。
哈希算法不能计算list;set集合没有下标。

集合对象还支持union(联合),intersection(交),difference(差),sysmmetric difference(对称差集)等数学运算。
大括号或set()函数可以用来创建集合。

注意:要创建空集合,必须用set(),不能用{}大括号来创建空集合。
set()可以将字符串、列表、元组、字典转换成set集合类型,在字典转换为set集合类型的时候,可以加keys()或value()方法分别只取key或value转换 。

set1=set();#创建空集合
set2={1,2,3,4,5}
set2_1=set({'a','ss',132,343.03,(33,33,44),True})
set3=set({1:1,2:2,3:3,})
set4=set({1:1,2:2,3:3,}.values)
set5=set([1,2,3,4,5])
set6=set((1,2,3,4,5))

用pyCharm时,某一属性或方法属于谁,提示的时候会显示在方法的后面。

add():向集合里添加一个元素,添加集合里面已经有的元素,后添加的元素会把已经有的相同的元素替换掉。
remove():删除,删除集合中不存在的会报错。
clear():清空集合。
pop():从集合中随机删除一个值,并返回删除的值;pop()不能加参数。

a={'a','b','c',"d","e"}
b=set(["a","b",'z',"y"])
print(a)
print(b)
#演示联合
print(a | b)
#演示交集,返回a、b中重复的
print(a & b)
#演示差集,a-b会返回a里面b没有的,b-a会返回b里面a没有的。
print(a-b)
#对称差集,用一个集合返回a、b中两者特有的;a、b中不重复的
print(a^b)
练习题:答案:
flag=True;  
names=[];  
phones=[];  
while flag:  
    print('\n\n=====通讯录管理系统=====');  
    print('1、添加i姓名和手机号');  
    print('2、删除姓名');  
    print('3、修改手机号');  
    print('4、查询所有用户');  
    print('5、根据姓名查找手机号');  
    print('6、退出');  
    print('========================');  
    i=int(input('请选择:'));  
    if i==6:  
        flag=False;  
    elif i==1:  
        names.append(input('请输入姓名:'));  
        phones.append(input('请输入手机号:'));
    elif i==2:
        name=input('请输入你要删除的姓名:');
        if name in names:
            index=name.index(name);
            names.pop(index)
            phones.pop(index)
        else:
            print('用户名不存在!')
    elif i == 3:
        phone=input('请输入要修改的手机号:')
        if phone in phones:
            new_phone=input('请输入新的手机号:')
            index=phones.index(phone)
            phones[index]=new_phone
            print('修改成功!')
        else:
            print('手机号不存在!')
    elif i==4:  
        for i in rang(len(names)):
            print(names[i],phones[i])
    elif i==5:
        name=input('你想要查看谁的手机号,请输入他的姓名:')
        if name in names:
            index=name.index(name)
            print('手机号:',phones[index])
        else:
            print('姓名不存在!')
用字典做练习题:
flag=True;  
User={};
while flag:  
    print('\n\n=====通讯录管理系统=====');  
    print('1、添加i姓名和手机号');  
    print('2、删除姓名');  
    print('3、修改手机号');  
    print('4、查询所有用户');  
    print('5、根据姓名查找手机号');  
    print('6、退出');  
    print('========================');  
    i=int(input('请选择:'));  
    if i==6:  
        flag=False;  
    elif i==1:  
        name=input('请输入姓名:');  
        phone=input('请输入手机号:');
        User[name]=phone;
    elif i==2:
        name=input('请输入你要删除的姓名:');
        if name in User:
            del User[name]
            print('删除成功!')
        else:
            print('用户名不存在!')
    elif i == 3:
        name=input('请输入姓名:')
        if name in User:
            new_phone=input('请输入新的手机号:')
            User[name]=new_phone;
            print('修改成功!')
        else:
            print('手机号不存在!')
    elif i==4:  
        for k,v in User.items():
            print(k,v)
    elif i==5:
        name=input('你想要查看谁的手机号,请输入他的姓名:')
        if name in User:
            print('手机号是:',User[name])
        else:
            print('姓名不存在!')
set();创建只有一个内容的集合,且内容是一串字符串,set()会把里面的字符串分割,其他几种类型的数据不会被分割。
set();创建有内容的集合,若内容是集合,且集合里只有一个字符串,如{'acbcv'},set()不会把字符串分割。
a=set('a','s','d','f','g')
b=set('a','z','s','x','c','v')
#把a、b进行合并,方法1:
a=a|b
print(a)
#把a、b进行合并,方法2:
a=set('a','s','d','f','g')
b=set('a','z','s','x','c','v')
a.update(b)
print(a)
a.update('1234')
print(a)










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值