集合的简介,添加移除,交集并集差集和验证码生成器,书籍管理系统

82 阅读3分钟

一.集合的定义:

集合是一个无序的不重复元素序列,可以使用大括号{}或者set()函数创建集合。

1.注意:

创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
    parame = {value01, value02,........}
    或者
    set(value)
    

2.特点:

    1.没有重复
    2.无序的(每个元素的顺序不是固定,每次打印顺序都会变化)
    3.没有下标

3.列表转集合时:

将列表转成一个集合时,会自动删除重复的元素,这跟集合的定义有关,还会自动排序

例子:

list1 = [1, 1, 3, 2, 6, 8, 4, 23, ]  
set2 = set(list1)
print(set2)  # ----->  {1, 2, 3, 4, 6, 8, 23}

二.集合元素的添加移除:

1.添加:

关键字:

add

格式及功能:

set.add(value)     # value是要添加的元素名称

例子我们就不举了,太简单了。既然讲了添加了,干脆把融合一起讲了吧。

2.融合:

关键字:

update

这个集合融合的关键字和字典的是同一个哟!

格式功能啥的,就不讲了。直接举例

set6 = set()  # 空集合
set1 = set()


set6.add('三体')
set6.add('盗墓笔记')
set1.update(set6)
print(set1)
print(set6)

3.移除:

关键字:

set.remove(元素名)
set.discard(元素名)  与remove不同的是,即使找不到要删除的元素,也不会报错
del                 因为集合既没有下标,也没有key,所以只能用来删除整个集合
set.clear()         清空集合地所有元素。
set.pop()           因为集合没有下标,所以pop里面就不能填参数了,效果就是随机删除集合里面的一个元素

这里面也就pop有些不同了,那我们就专门举个例子来看看

b = {1, 3, 44, 5, 5, 6, 66, 4}
b.pop()
print(b)

{66, 4, 44, 5,  6, 1, 3}  #  第一次打印效果
{1, 3, 44, 5, 5,  66, 4}  #  第二次打印效果
{1, 44, 5, 6, 66, 3, 5}   #  第三次打印效果

从打印结果,我们可以看到除了顺序变了,每次都消失了不同的数字。这就是pop在集合中与在其它数据类型中的不同之处。

三.交集,并集,差集:

作为集合,我们在高中就知道有集合,就有交集,并集,差集。现在我们就来了解了解.

1.关键字以及它们的简化符号:

交集(intersection)  简化符号:&
并集(union)         简化符号:|
差集(difference )   简化符号:-

例子:

set2 = {1, 3, 3, 344, 23, 23, 44, 234, 3}
set3 = {12, 123, 2, 412, 3, 423, 42, 3, 42}

a = set2.intersection(set3)  # 打印set2中与set3相同的元素
print(a)
print(set2 & set3)

a = set2.union(set3)  # 打印两个集合
print(a)
print(set2 | set3)

a = set2.difference(set3)  # 打印set2中与set3不同的元素
print(a)
print(set2 - set3)

四.验证码生成器:

要求: 产生5组不允许重复,由字母和数字组成的4位验证码

import random 
b = '53463541567987896963000000003546weffwe'  # 验证码的来源
a = set()    # 验证码的容器
f = ''      #  这也是验证码变成字符串类型后的容器
n = 0       #  计算有几个验证码了
while True:
    a.add(b[random.randint(0, len(b)-1)])    # 开始产生验证码
    if len(a) == 4:
        for i in range(4):       # 将验证码转换成字符串类型
            g = list(a)[i]
            f += g
        print(str(f))
        f = ''
        a.clear()
        n += 1
    elif n == 5:
        break

五.书籍管理系统:

要求:1.可以添加三本书 2.不能添加同名书籍 3.信息得有书名,作者,价格

books = []  # 创建书架
n = -1      
while len(books) < 3:      # 看是否有三本,没有就添加
    d = {'书名': input('请输入书名:'), '作者': input('请输入作者:'), '价格': input('请输入价格:')}                      # 开始添加书
    books.append(d)
    e = []
    n += 1
    for i in books:         # 查看是否重复
        b = i['书名']
        e.append(b)
        if e.count(d['书名']) >= 2:   # 不重复继续添加,重复就重新输入
            books.pop(n)
            print('该书籍已存在,请输入其它书籍')
            break
print(books)