集合的增删改查、集合类型的关系测试

集合类型

  • 如何同时找出买了IPhone7和8的人?

  • 集合的增删改查

 1 #创建集合
 2 s = {}                        #字典
 3 print(type(s))                #结果为:<class ‘dict‘>
 4
 5 s1 = {1,2,3,4,5}              #集合
 6 print(type(s1))               #结果为:<class ‘set‘>
 7
 8 #将列表转化为集合
 9 l= [1,2,3,4,5,2,3]
10 print(l)                      #结果为:[1, 2, 3, 4, 5, 2, 3]
11 print(set(l))                 #结果为:{1, 2, 3, 4, 5}
12 print(type(set(l)))           #结果为:<class ‘set‘>
13
14
15 #集合的增删改查
16 #增加
17 s2 = {1,2,3,4,5}
18 #增加一个已存在的值
19 s2.add(2)
20 print(s2)                    #结果为:{1, 2, 3, 4, 5}
21 #增加一个没有的值
22 s2.add(8)
23 print(s2)                    #结果为:{1, 2, 3, 4, 5, 8}
24
25 #删除
26 # 集合是无序的,随机删除一个元素
27 s2.pop()
28 print(s2)                    #结果为:{2, 3, 4, 5, 8}
29 #删除集合中指定的元素
30 s2.remove(8)
31 print(s2)                    #结果为:{2, 3, 4, 5}
32 #remove方法,删除集合中不存在的元素会报错
33 #s2.remove(6)                 #结果为:KeyError: 6,
34 #discard方法,删除集合中不存在的元素不会报错(类似于字典中的get方法)
35 s2.discard(6)
36 print(s2)                    #结果为:{2, 3, 4, 5}
37
38 #把多个值加入集合
39 s2.update([10,12,15,1,2,3,4,5])
40 print(s2)                    #结果为:{1, 2, 3, 4, 5, 10, 12, 15}
41
42 #清空set中的内容;
43 s2.clear()
44 print(s2)                    #结果为:set()
45
46 #print(help(dic4.pop()))查看字典的帮助信息;

集合类型的关系测试

 1 #交集(买了iphone7并且还买了iPhone8的人)
 2 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘}
 3 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘}
 4 print(iphone7.intersection(iphone8))              #结果为:{‘jack‘, ‘alex‘}
 5 print(iphone7 & iphone8)                          #结果为:{‘jack‘, ‘alex‘}
 6
 7 #差集
 8 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘}
 9 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘}
10 #买了iphone7却没有买iPhone8的人
11 print(iphone7.difference(iphone8))                #结果为:{‘rain‘, ‘old_driver‘}
12 print(iphone7 - iphone8)                          #结果为:{‘rain‘, ‘old_driver‘}
13 #买了iphone8却没有买iPhone7的人
14 print(iphone8.difference(iphone7))                #结果为:{‘shanshan‘, ‘old_boy‘}
15 print(iphone8 - iphone7)                          #结果为:{‘shanshan‘, ‘old_boy‘}
16
17 #并集(买了iphone7或者iPhone8的人)
18 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘}
19 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘}
20 print(iphone8.union(iphone7))                     #结果为:{‘shanshan‘, ‘old_boy‘, ‘rain‘, ‘alex‘, ‘jack‘, ‘old_driver‘}
21 print(iphone8 | iphone7)                          #结果为:{‘shanshan‘, ‘old_boy‘, ‘rain‘, ‘alex‘, ‘jack‘, ‘old_driver‘}
22 print(iphone7.union(iphone8))                     #结果为:{‘old_driver‘, ‘old_boy‘, ‘alex‘, ‘rain‘, ‘shanshan‘, ‘jack‘}
23 print(iphone7 | iphone8)                          #结果为:{‘old_driver‘, ‘old_boy‘, ‘alex‘, ‘rain‘, ‘shanshan‘, ‘jack‘}
24
25 #对称差集(只买了iphone7 或者 只买了iPhone8的人)
26 iphone7 = {‘alex‘,‘rain‘,‘jack‘,‘old_driver‘}
27 iphone8 = {‘alex‘,‘jack‘,‘shanshan‘,‘old_boy‘}
28 print(iphone7.symmetric_difference(iphone8))       #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘}
29 print(iphone8.symmetric_difference(iphone7))       #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘}
30 print(iphone7 ^ iphone8)                           #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘}
31 print(iphone8 ^ iphone7)                           #结果为:{‘old_driver‘, ‘rain‘, ‘shanshan‘, ‘old_boy‘}
32
33 #子集和超集(超集和子集可以使用> 或<符号来表示)
34 s = {1,2,3,4}
35 s2 = {2,3,5,6}
36 s2.add(1)
37 s2.add(4)
38 print(s2)                                          #结果为:{1, 2, 3, 4, 5, 6}
39 print(s)                                           #结果为:{1, 2, 3, 4}
40 #判断 s 是不是 s2 的子集  s <= s2
41 print(s.issubset(s2))                              #结果为:True
42 #判断 s 是不是 s2 的超集  s >= s2
43 print(s.issuperset(s2))                            #结果为:False
44 #判断 s2 是不是 ss 的超集 s2 >= s
45 print(s2.issubset(s2))                             #结果为:True
46
47 #当集合中的数据量特别大时,可以用s.isdisjoint()判断 是不是 不相交
48 print(s.isdisjoint(s2))                            #结果为:False
49 print(s2.isdisjoint(s))                            #结果为:False
50
51 l = {1,2,3,4,-1,-2}
52 l1 = {1,2,3,4,5,6}
53 #将l与l1差集的结果赋值给l
54 l.difference_update(l1)
55 print(l)                                           #结果为:{-2, -1}
56 #将l与l1差集的结果赋值给l1
57 l1.difference_update(l)
58 print(l1)                                          #结果为:{5, 6}

原文地址:https://www.cnblogs.com/wqq0723/p/9531508.html

时间: 2024-08-02 04:39:50

集合的增删改查、集合类型的关系测试的相关文章

Android SQLite的使用,基本的增删改查效果,以及ListView的效果显示

1 package com.example.sqlitetest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import android.content.ContentValues; 6 import android.content.Context; 7 import android.database.Cursor; 8 import android.database.sqlite.SQLiteDatabase; 9

struts2-11-OGNL实现书籍的增删改查

一:集合模拟数据库 nuc.sw.db--->BookDB.java 1 package nuc.sw.db; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import nuc.sw.vo.Book; 7 8 public class BookDB { 9 //定义静态集合,类可以打点调用,并且类的多个对象也可以使用 10 public static List<Book> bookList=new ArrayL

struts2-10-属性驱动实现书籍的增删改查

一:集合模拟数据库 nuc.sw.db--->BookDB.java 1 package nuc.sw.db; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import nuc.sw.vo.Book; 7 8 public class BookDB { 9 //定义静态集合,类可以打点调用,并且类的多个对象也可以使用 10 public static List<Book> bookList=new ArrayL

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

mongodb的学习笔记一(集合和文档的增删改查)

1数据库的增删改查 一.增加一个数据库: use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的) 二.删除一个数据库 1首先用use 切换到你需要删除的数据库 use test 2然后执行db.dropDatabase()命令 db.dropDatabase() 三.修改一个数据库的名字 db.copyDatabase(fromdb, todb, fromhost) fromdb:源数据库, todb:目标数据

Mysql 常用增删改查命令集合教程

创建:create      插入:insert 更新:update  查询:select 删除:delete 修改:alter     销毁:drop 创建一个数据库: create database 数据库名 [其他选项]; create database `samp_db`;创建数据库表: create table 表名称(列声明); create table `students` ( `id` int unsigned not null auto_increment primary ke

mongoVUE的增删改查操作使用说明;一、查询;1、精确查询;1)右键点击集合名,再左键点击Find;或者直接点击工具栏上的Find;2)查询界面,包括四个区域;{Find}区,查询条件格式{&quot;se

mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{"sendId":"000101"}表示查询sendId=000101的记录, (注:mongodb区分大小写,写成{"sendid":"000101"}会查询不到) 查询条件包含and时,格式为:{"sendId&quo

Python 集合的各种操作 数学运算 关系操作 增删改查 生成式

# 集合是无序的 是可变的 不能重复 允许数学运算 分散存储 # 创建# collegel = {'哲学','经济学','法学','教育学'}## # {'教育学', '经济学', '法学', '哲学'}# print(collegel)## # set# collegel2 = set(['金融学','哲学','经济学','法学','教育学'])# print(collegel2)## # 使用set创建字符串集合# collegel3 = set('中华人民共和国')# # {'共', '华

第三课作业——set类型、sorted set类型的增删改查,redis的事务

第三课时作业 静哥 by 2016.2.23~2016.3.6   [作业描述] 1.总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查(查需要至少4种方式,比如列表,单个节点等) 2.总结redis的事务特征,并且实际操作事务的提交  丢弃以及乐观锁 [作业一:总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查] (1) set是字符串的无序集合,集合内的成员可以是重复: sorted set是有序集合