DAY 07冲击蓝桥杯——Python基础07python集合

文章目录

    • 8.1 集合的一些概念
    • 8.2 集合的“增”
      • 8.2.1 添加项目值
      • 8.2.2 添加集合
      • 8.2.3 添加任何可迭代对象
    • 8.3 集合的“删”
      • 8.3.1 remove()方法
      • 8.3.2 discard() 方法
      • 8.3.3 pop() 方法
      • 8.3.4 clear() 方法
      • 8.3.5 del关键字
    • 8.4 集合的“改”
    • 8.5 集合的“查”
      • 8.5.1 遍历集合
      • 8.5.2 检查是否存在
    • 8.6 集合连接
      • 8.6.1 普通连接
      • 8.6.2 仅保留重复项
      • 8.6.3 保留所有,但不保留重复项
    • 练习题

8.1 集合的一些概念

基本形式:集合是用大括号写的,并且其是无序和不能重复的。

myset = {"hg一号", "hg二号", "hg三号"}
print(myset)

注意:集合是无序的,因此您无法确定项目的显示顺序。(区别于元组)

8.2 集合的“增”

8.2.1 添加项目值

创建集合后,您无法更改其项目,但可以添加新项目。要将一项添加到集合中,请使用add() 方法。
例如:添加hg菜鸟到集合中

myset = {"hg一号", "hg二号", "hg三号"}
myset.add('hg菜鸟')
print(myset)

8.2.2 添加集合

要将另一个集合中的项目添加到当前集合中,请使用update() 方法。
例如将myset1添加到myset中:

myset = {"hg一号", "hg二号", "hg三号"}
myset1 = {"hg一号", "hg二号", "hg三号","hg菜鸟"}
myset.update(myset1)
print(myset)

注意集合不能重复,重复的集合会被覆盖,因此只添加了新的值进来。

8.2.3 添加任何可迭代对象

update()方法中的对象不一定是集合,它可以是任何可迭代对象(元组、列表、字典等)。
例如:将myset2列表加入集合myset1

myset = {"hg一号", "hg二号", "hg三号"}
myset1 = ["hg一号", "hg二号", "hg三号","hg菜鸟"]
myset.update(myset1)
print(myset)

8.3 集合的“删”

8.3.1 remove()方法

要删除集合中的项目,请使用remove()、 或discard()方法。
例如我要移除hg一号:

myset = {"hg一号", "hg二号", "hg三号"}
myset.remove("hg一号")
print(myset)

注意:如果要删除的项目不存在,remove()将引发错误。

8.3.2 discard() 方法

使用以下discard() 方法删除“hg一号” :

myset = {"hg一号", "hg二号", "hg三号"}
myset.discard("hg一号")
print(myset)

注意:如果要删除的项目不存在,discard() 将引发错误。

8.3.3 pop() 方法

使用以下pop() 方法删除最后一项:

myset = {"hg一号", "hg二号", "hg三号"}
myset.pop()
print(myset)

注意:集合是无序的,因此在使用该pop()方法时,您不知道哪个项目被删除。

8.3.4 clear() 方法

clear() 方法清空集合:

myset = {"hg一号", "hg二号", "hg三号"}
myset.clear()
print(myset)

打印为空。

8.3.5 del关键字

该del关键字将完全删除该集合:

myset = {"hg一号", "hg二号", "hg三号"}
del myset

集合已经不存在了,因此我们不打印。

8.4 集合的“改”

集合元素为不可变类型,所以无法修改

8.5 集合的“查”

8.5.1 遍历集合

您不能通过引用索引或键来访问集合中的项目。但是您可以使用循环遍历集合项for ,或者使用in关键字询问集合中是否存在指定的值 。

myset = {"hg一号", "hg二号", "hg三号"}
for i in myset:
    print(i)

8.5.2 检查是否存在

检查集合中是否存在“串串一号”:(显然不在)

myset = {"hg一号", "hg二号", "hg三号"}
print('串串一号' in myset)

8.6 集合连接

8.6.1 普通连接

您可以使用union()返回包含两个集合中所有项的新集合的方法,或将一个集合中的所有项update()插入另一个集合的方法。
(1)使用union()方法返回一个包含两个集合中所有项目的新集合

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)

(2)update()方法将 set2 中的项插入到 set1 中

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)

注意:无论union()和update() 将排除任何重复的项目。

8.6.2 仅保留重复项

intersection_update()方法将只保留两个集合中都存在的项目。
保留myset4和myset5重复项:

myset4 = {"hg一号", "hg二号", "hg三号",'hg菜鸟'}
myset5 = {"hg一号", "hg五号", "hg三号",'hg菜鸟'}
myset4.intersection_update(myset5)
print(myset4)

或者用intersection()方法将返回一个新集合,该集合仅包含两个集合中都存在的项目。

myset4 = {"hg一号", "hg二号", "hg三号",'hg菜鸟'}
myset5 = {"hg一号", "hg五号", "hg三号",'hg菜鸟'}
z=myset4.intersection(myset5)
print(myset4)

8.6.3 保留所有,但不保留重复项

symmetric_difference_update()方法将只保留两个集合中都不存在的元素(删除两个集合都有的)。

myset4 = {"hg一号", "hg二号", "hg三号",'hg菜鸟'}
myset5 = {"hg一号", "hg五号", "hg三号",'hg菜鸟'}
myset4.symmetric_difference_update(myset5)
print(myset4)

symmetric_difference()方法将返回一个新集合,该集合仅包含两个集合中都不存在的元素。

myset4 = {"hg一号", "hg二号", "hg三号",'hg菜鸟'}
myset5 = {"hg一号", "hg五号", "hg三号",'hg菜鸟'}
z=myset4.symmetric_difference(myset5)
print(z)

练习题

Q1-检查fruits集中是否存在“appl”。

fruits = {"apple", "banana", "cherry"}
if "apple" in fruits:
  print("Yes, apple is a fruit!")

Q2-使用 add 方法将“orange”添加到fruits集中。

fruits = {"apple", "banana", "cherry"}
fruits.add('orange')
print(fruits)

Q3-使用正确的方法将多个项目(more_fruits)添加到fruits 集中。

fruits = {"apple", "banana", "cherry"}
more_fruits = ["orange", "mango", "grapes"]
fruits.update(more_fruits)#答案
print(fruits)

Q4-使用 remove 方法从fruits 集中删除“banana。

fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits)

Q5-使用discard方法从fruits 集中删除“香蕉”。

fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
print(fruits)

answer都经过python调试。

  1. https://chuanchuan.blog.csdn.net/article/details/120419754?spm=1001.2014.3001.5502

  2. 用Python玩转数据——中国大学mooc

你可能感兴趣的:(python基础,蓝桥杯,python)