数据连接基本总结 day10

一.定义集合

集合:可以包含多个元素,用逗号分割;

集合的元素遵循三个原则:

1.每个元素必须是不可变类型

2.没有重复的元素

3.无序

1.update

描述:扩展集合

参数:要添加的集合

返回值:None(原集合会被修改)

s1={‘apple‘,‘voivo‘,‘oppo‘,‘huwei‘}
s2={‘hshshs‘}
s3=s1.update(s2) # 扩展集合s1
print(type(s3),s3)# 查看返回值
print(type(s1),s1)# 打印扩展后的集合s1

输出结果


1

2

<class ‘NoneType‘None

<class ‘set‘> {‘knight‘‘sky‘‘pudding‘‘lisa‘‘william‘}

2、copy()

描述:复制集合

参数:无

返回值:返回一个和原集合一样的新的集合

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.copy()  # 对集合s1进行复制
print(type(s1),s1)
print(type(s2),s2)

输出结果

<class ‘bool‘> True
<class ‘bool‘> False

3、pop()

描述:随机删除集合中的一个元素

参数:无

返回值:返回被删除的元素

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.pop()    # 随机删除集合中的一个元素
print(type(s1),s1)
print(type(s2),s2)

输出结果

<class ‘set‘> {‘lisa‘, ‘knight‘, ‘william‘}
<class ‘str‘> pudding

4、clear()

描述:清空字典

参数:无

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.clear()  # 清空集合
print(type(s1),s1)
print(type(s2),s2)

<class ‘set‘> set()
<class ‘NoneType‘> None

5、remove()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.remove(‘lisa‘)
print(type(s1),s1)
print(type(s2),s2)  # 返回值为空

输出结果

<class ‘set‘> {‘william‘, ‘pudding‘, ‘knight‘}
<class ‘NoneType‘> None

6、add()

描述:为集合增加元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.add(‘sky‘)
print(type(s1),s1)
print(type(s2),s2)  # 返回值为空

输出结果

<class ‘set‘> {‘pudding‘, ‘lisa‘, ‘william‘, ‘knight‘, ‘sky‘}
<class ‘NoneType‘> None

7、difference()

描述:差集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个差集

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘sky‘,‘william‘,‘hello‘,‘knight‘}
s3 = s1.difference(s2)
print(type(s3),s3)  # 得到一个差集。
print(type(s1),s1)  # 原集合不更新

输出结果

<class ‘set‘> {‘lisa‘, ‘pudding‘}
<class ‘set‘> {‘pudding‘, ‘lisa‘, ‘knight‘, ‘william‘}

8.difference_update

述:差集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘sky‘,‘william‘,‘hello‘,‘knight‘}
s3 = s1.difference_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集被更新

输出结果

<class ‘NoneType‘> None
<class ‘set‘> {‘pudding‘, ‘lisa‘}

9、discard()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.discard(‘william‘)
print(type(s2),s2)   
print(type(s1),s1) 

输出结果

<class ‘NoneType‘> None
<class ‘set‘> {‘lisa‘, ‘knight‘, ‘pudding‘}

10、intersection()

描述:交集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个交集

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘xxxx‘}
s3 = s1.intersection(s2)
print(type(s3),s3)  # 得到一个交集
print(type(s1),s1)  # 原集合不更新

输出结果

<class ‘set‘> {‘william‘}
<class ‘set‘> {‘william‘, ‘lisa‘, ‘knight‘, ‘pudding‘}

11、intersection_update()

描述:交集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘xxxx‘}
s3 = s1.intersection_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集合更新

输出结

<class ‘NoneType‘> None
<class ‘set‘> {‘william‘}

12、union()

描述:并集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个新的集合,两个集合中都有的元素都合并成一个

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘pudding‘,‘xxxxxx‘}
s3 = s1.union(s2)
print(type(s3),s3)   # 返回得到一个新的集合,两个集合中都有的元素都合并成一个。
print(type(s1),s1)   # 并集运算,原集合不更新

输出结

<class ‘set‘> {‘xxxxxx‘, ‘knight‘, ‘william‘, ‘lisa‘, ‘pudding‘}
<class ‘set‘> {‘pudding‘, ‘lisa‘, ‘knight‘, ‘william‘}

13、issubset()

描述:判断原集合是否是要对比的集合的子集,如果是则返回True,否则返回False

参数:set  要对比的集合

返回值:得到一个布尔值

s1 = {‘william‘,‘pudding‘}
s2 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s3 = s1.issubset(s2)    # s1是否是s2的子集,所以返回True
print(type(s3),s3)
#--------------------------------------
s4 = {‘william‘,‘xxxxx‘}
s5 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s6 = s4.issubset(s5)    # s4不是s5的子集,所以返回False
print(type(s6),s6)

<class ‘bool‘> True
<class ‘bool‘> False

14.利用setdefault解决重复赋值

1:key存在,则不能赋值,key不存在则设置默认值

2:key存在,返回是key对应的已有的值,key不存在,返回的则是要设置的默认值

d={}
print(d.setdefault(‘a‘,1))

d={‘a‘:2222}
print(d.setdefault(‘a‘,1))

eg

s=‘hello alex alex say hello sb sb‘
dic={}
words=s.split()
for word in words:
    dic.setdefault(word,s.count(word))
    print(dic)

利用集合,去掉重复,减少循环次数

s =‘hello alex alex say hello sb sb‘
dic={}
word = s.split()
words_set=set(words)
for word in words_set:
    dic[word]=s.count(word)
    print(dic)

  in:字符串,列表,元组,字典,集合

  for:字符串,列表,元组,字典,集合

  解压:字符串,列表,元组,字典,集合

布尔值的获取

所有的数据类型,都自带布尔值,也就是说我们可以直接用数据当做判断条件,比如:

x=10
if x:
    print(‘ok‘)#会打印ok,因为x自带的布尔值为True

其他数据类型自带的布尔值是什么?

  所有的数据类型自带的布尔值无非是True和False两种

  而空字符串,空字典,空列表,空集合等值都为空的,以及None,False的布尔值为False

  其余数据类型的值都为True

时间: 2024-10-10 23:50:24

数据连接基本总结 day10的相关文章

Netbeans 中创建数据连接池和数据源步骤

1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio Pools 4.对General Settings属性填写: 5.填写Datasource Classname:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource Ping属性选中,可以用来检验数据连接池是否创建成功! . 6.对Ad

D3数据连接:进入

引言:数据连接是D3中的面包和黄油.D3不提供制图的基础函数,相反,它靠的是数据连接.数据连接可以让页面元素进入网页,一旦进入,可以修改.更新及退出.本文将主要介绍"进入"部分.本文选自<图说D3:数据可视化利器从入门到进阶>. 什么是数据连接 顾名思义,数据连接肯定是将数据和某些东西连接起来.这些东西是网页上的一个或一组--< rect>.< circle>.< div>等所有值得怀疑的常见元素.具体一点,就是这些常见元素的一个D3选择

spring下,druid,c3p0,proxool,dbcp四个数据连接池的使用和配置

由于那天Oracle的数据连接是只能使用dbcp的数据库连接池才连接上了,所以决定试一下当下所有得数据库连接池连接orcale和mysql,先上代码 配置文件的代码 1 #=================dbcp连接池======================# 2 #Oracle数据库连接 3 #jdbc_driverClassName=oracle.jdbc.driver.OracleDriver 4 #jdbc_url=jdbc:oracle:thin:@localhost:1521:

记录一个简单的dbcp数据连接池

这个示例用到了ThreadLocal与dbcp,我觉得有点意思,就整理了下.使用dbcp,肯定要导入commons-dbcp.jar包.下面直接贴DBUtil代码: public class DBUtil { private static DataSource ds; //定义一个数据连接池 //threadLocal是线程的局部变量,它的实例通常是类中的 private static 字段 private static ThreadLocal<Connection> connLocal=ne

c# 高效利用数据连接

有两种方式可以确保数据连接在用完后立即释放 1.第一种方式--利用try..catch...finally语句块 在finally中关闭任何已经打开的连接 try { conn.open(); } catch(SqlException ex) { // } finally { conn.Close(); } 在finally块中,可以释放已经使用的任何资源, 第二种方式使用Using 语句 string source =''......." using (SqlConnection conn=n

htc M8 无法自动恢复数据连接(4g)的问题解决

情况如下:htc m8 tdd-lte的双待手机,4g.2g同时在线. 本月出现,在短时间没有信号的情况后,无法恢复数据连接,哪怕是edge,更不论4g了. 尝试各种方法无解.最后咨询10086解决此问题. 这个应该不是手机的问题,貌似是移动端的2g edge数据流量被关闭/错误设置导致的.   我感觉像是2g-3g-4g之间切换需要依次回落或者升级.因为双待,4g信号开机是有的,可以上网,但是电梯等4g消失的情况发生后,需要借助于2g/3g的数据连接再恢复到4g,没有2g/3g的数据连接就恢复

数据连接池JNDI

数据库连接有很多中方式,JDBC数据库的连接方式,前边我们已经介绍过了,而开发中我们经常使用的是DataBaseConnectionPool(数据库连接池,DBCP).数据库连接池到底是什么?它比jdbc数据库连接有什么优势呢?它又怎么使用呢? 一,先看一下JDBC连接,每次用户访问数据库时,需要JDBC为我们创建数据库连接,我们使用,然后关闭.而当我们加断点测试,可以发现这个过程中创建数据库连接这个过程是比较费时间的,而不是我们在数据库中操作数据费时间.所以JDBC这种方式的效率大大折扣.而且

帆软报表学习之数据连接

帆软报表FineReport中数据连接的JDBC连接池属性问题 连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心思想,是连接复用,通过建立一个数据库连接池以及一套连接使用.分配.治理策略,使得该连接池中的连接可以得到高效.安全的复用,避免了数据库连接频繁建立.关闭的开销. 另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的

D3数据连接之“更新”和“退出”

摘要: 昨天的推送中,我们阐述了数据连接的进入阶段.本文中,我们学习一下其更新和退出机制. 本文选自<图说D3:数据可视化利器从入门到进阶>. 让我们回到之前那个"怪咖"Frank那里,重新审视一下他的那些小报封面数据,看一下Frank手头前3个月的数据,以及我们之前做过的事情. 到目前为止,我们只让1月的数据"进入"页面,并渲染出一系列文本元素. 让文本进入页面. 页面上有文本元素,每个都表示janData中的一个数据点.现在我们要更新页面,显示2月的