数据类型的回顾与总结

可变与不可变
1.可变:列表,字典
2.不可变:字符串,数字,元组

访问顺序:
1.直接访问:数字
2.顺序访问:字符串,列表,元祖
3.映射:字典

存放元素个数:
容器类型:列表,元祖,字典
原子:数字,字符串

set 集合

一、集合的基本属性

1.不同元素组成
2.无序
3.集合中元素必须是不可变类型(字符串,数字,元组)

s = {1,2,3,4,5,6}
s = {1,2,3,3,3,3,3}
print(type(s))
print(s)
#<class 'set'>
#{1, 2, 3}

set

定义方式

s = set('hello')
print (s)
#{'h', 'e', 'l', 'o'} s1 = set('hello')
print(s1) s2 = set(['root','root','even'])
print(s2) #{'e', 'o', 'l', 'h'}
#{'even', 'root'}

set 集合 使用 for 循环里面的类型

如果有重复的值,则丢弃

二、集合的方法

1.add

添加,只能更新一个值,更新多个值使用 update

s = {1,2,3,4,5,6}
s.add('s')
print(s)
#{1,2,3,4,5,6,'s'}

add

2.clear

清除

s = {1,2,3,4,5,6}
s.clear()
print(s)
#set()

clear

3.copy

拷贝值

s1 = {1,2,3,4,5,6}
s2 = s1.copy()
print(s2)
#{1, 2, 3, 4, 5, 6}

copy

4.pop

随机删除一个值,并保留该值

s = {'e',1,2,3,4,5,6}
n = s.pop()
print(s)
print(n)
#{2, 3, 4, 5, 6, 'e'}
#

pop

5.remove

删除指定值,若删元素不存在,IDEA会报错

s = {'e',1,2,3,4,5,6}
s.remove('e')
print(s)
#{1, 2, 3, 4, 5, 6} 注意:
s = {'e',1,2,3,4,5,6}
s.remove('root') #删除元素不存在,会报错
print(s)

remove

6.discard

删除指定值,若要删除的元素不存在,IDEA不会报错

s = {'e',1,2,3,4,5,6}
s.discard('root') #删除元素不存在,不会报错
print(s)
#{1, 2, 3, 4, 5, 6, 'e'}

discard

三、集合关系运算

现在有两个列表,求他们的交集

足球队人员是张三、李四、王五

篮球队人员是张三、王五、赵六

football = ['张三','李四','王五']
basketball = ['张三','王五','赵六']
#会踢足球的人员和会打篮球的人员
#如果不使用set集合的方式,使用list方式进行for循环,输出两门球类运动都会的人 all = [] #定义一个两门都会的空列表
for f in football: #将football内的元素for循环
if f in basketball: #如果这些元素也在basketball内
all.append(f) #添加这些元素进入[]空列表 print(all)
#['张三', '王五']

1.intersection() 交集

通过 set的方法完成上面的要求

football = ['张三','李四','王五']
basketball = ['张三','王五','赵六']
#会踢足球的人员和会打篮球的人员
#使用set交集的方式,输出两门球类运动都会的人 f_s = set(football) #将football转换为f_s集合
b_s = set(basketball) #将basketball转换为b_s集合 print(f_s,b_s)
print(f_s.intersection(b_s)) #取f_s和b_s的交集 #{'张三', '王五', '李四'} {'张三', '王五', '赵六'}
#{'张三', '王五'}

2.union() 并集

football = ['张三','李四','王五']
basketball = ['张三','王五','赵六']
#会踢足球的人员和会打篮球的人员
#使用set并集的方式,输出两类总共人数 f_s = set(football) #将football转换为f_s集合
b_s = set(basketball) #将basketball转换为b_s集合 print(f_s,b_s)
print(f_s.union(b_s)) #取f_s和b_s的交集 #{'王五', '张三', '李四'} {'赵六', '张三', '王五'}
#{'赵六', '张三', '李四', '王五'}

union()

3.difference()差集

football = ['张三','李四','王五']
basketball = ['张三','王五','赵六'] f_s = set(football) #将football转换为f_s集合
b_s = set(basketball) #将basketball转换为b_s集合 print('差集1',f_s - b_s) #f_s.difference(b_s) 等同于 f_s - b_s
print(f_s.difference(b_s)) print('差集2',b_s - f_s) #b_s.difference(f_s) 等同于 b_s - f_s
print(b_s.difference(f_s)) #差集1 {'李四'}
#{'李四'}
#差集2 {'赵六'}
#{'赵六'}

difference()

4.symmetric_difference() 交叉补集

football = ['张三','李四','王五']
basketball = ['张三','王五','赵六'] f_s = set(football) #将football转换为f_s集合
b_s = set(basketball) #将basketball转换为b_s集合 print(f_s.symmetric_difference(b_s)) #f_s.difference(b_s) 等同于 f_s ^ b_s #{'李四', '赵六'}

symmetric_difference()

PS:这几类方法后面加.update是求完值之后重新赋值

5.isdisjoint  issubset  issuperset

判断有无交集  判断是否是子集  判断是否是父集

6.update

更新多个值 和add不同的是 add只能添加单个值

s = {'s','g','h'}
s.update('e','n',(10,1),[22,33],{50:2,30:4})
print(s)
#字符串和所有可迭代对象都可以被update添加
#{1, 33, 'e', 10, 's', 50, 22, 'g', 'h', 30, 'n'}

字符串的格式化

一、常用格式化

%字符的用处

msg = 'i am %s my hobby is %s' % ('even','python')
print(msg)
#i am even my hobby is python
msg1 = 'i am %s my hobby is %s' % ('even',123)
msg2 = 'i am %s my hobby is %s' % ('even',[1,2])
print(msg1)
print(msg2)
#i am even my hobby is 123
#i am even my hobby is [1,2]

打印浮点数

tpl = "percent %.2f" % 99.976238888    #.2f保留浮点数后两位
print(tpl)
#percent 99.98

打印百分比

tpl = 'percent %.2f %%' % 99.976238888
print(tpl)
#percent 99.98 %

:分隔符拼接

print('root','x','','',sep=':')
#root:x:0:0

二、format 的常用格式化

tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')

tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])

tpl = "i am {0}, age {1}, really {0}".format("seven", 18)

tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])

tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)

tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})

tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])

tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)

tpl = "i am {:s}, age {:d}".format(*["seven", 18])

tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)

tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})

tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
#进制互转格式化 tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15) tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

**代表字典对应格式化 

tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
print(tpl)

 *代表列表对应格式化

tpl = "i am {:s}, age {:d}".format(*["seven", 18])
print(tpl)

Python基础 之 set集合 与 字符串格式化的更多相关文章

  1. 14.python类型总结,集合,字符串格式化

    借鉴:https://www.cnblogs.com/linhaifeng/articles/5935801.html  https://www.cnblogs.com/wupeiqi/article ...

  2. python学习6—数据类型之集合与字符串格式化

    python学习6—数据类型之集合与字符串格式化 1. 使用id()可以查看一个变量的内存地址: name = 'alex' id(name) 2. 进制转换 十进制转换为二进制等: a = 10 # ...

  3. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  4. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  5. Python基础篇(set集合)

    Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...

  6. 【笔记】Python基础二:数据类型之集合,字符串格式化,函数

    一,新类型:集合 集合出现之前 python_l = ['lcg','szw','zjw'] linux_l = ['lcg','szw','sb'] #循环方法求交集 python_and_linu ...

  7. Python系列之模块、和字符串格式化

    Python 模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 模块分为 ...

  8. python关键字、转义符和字符串格式化

    最近在学learn python the hard way,学习到第37章,进行了关于关键字.转义符和字符串格式化的总结.看手头上的中文版没有及时更新.于是就把这些翻译过来,以作查阅. 关键字: 关键 ...

  9. python_05 可变类型与不可变类型、集合、字符串格式化

    可变数据类型与不可变数据类型: 1.可变:列表,字典 2.不可变:字符串,数字,元组 访问顺序: 1.顺序访问:字符串,列表,元组 2.映射:字典 集合 由不同元素组成的集合,集合中是一组无序排列的可 ...

随机推荐

  1. 爬虫之Beautifulsoup及xpath

    1.BeautifulSoup (以 Python 风格的方式来对 HTML 或 XML 进行迭代,搜索和修改) 1.1 介绍 Beautiful Soup提供一些简单的.python式的函数用来处理 ...

  2. 启动tomcat的时候为啥你启动的是8,启动起来的确实其他的Tomcat

    如果发现,是启动tomcat的时候为啥你启动的是8,启动起来的确实其他的Tomcat ,你可以去看看你的环境变量,是不是配了一个tomcat,

  3. 学习笔记(1)centos7 下安装nginx

    学习笔记(1)centos7 下安装nginx 这里我是通过来自nginx.org的nginx软件包进行安装的. 1.首先为centos设置添加nginx的yum存储库 1.通过vi命令创建一个rep ...

  4. 840. Magic Squares In Grid (5月27日)

    开头 这是每周比赛中的第一道题,博主试了好几次坑后才勉强做对了,第二道题写的差不多结果去试时结果比赛已经已经结束了(尴尬),所以今天只记录第一道题吧 题目原文 Magic Squares In Gri ...

  5. Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试

    首先登陆进入Mysql命令行  执行sql      show variables like 'slow_query%';  结果为OFF 说明还未开启慢查询 执行sql     show varia ...

  6. 【Hive三】Hive理论

    1. Hive基础 1. Hive基础 Hive基本概念 引入原因: Hive是什么 Hive数据管理 四种数据模型 Hive内部表和外部表 Hive数据类型 Hive的优化 Map的优化: Redu ...

  7. 2.1 摄像头V4L2驱动框架分析

    学习目标:学习V4L2(V4L2:vidio for linux version 2)摄像头驱动框架,分析vivi.c(虚拟视频硬件相关)驱动源码程序,总结V4L2硬件相关的驱动的步骤:  一.V4L ...

  8. Linux内核调用SPI平台级驱动_实现OLED的显示功能

    Linux内核调用SPI驱动_实现OLED显示功能 0. 导语 进入Linux的世界,发现真的是无比的有趣,也发现搞Linux驱动从底层嵌入式搞起真的是很有益处.我们在单片机.DSP这些无操作系统的裸 ...

  9. python新手学习之文件读写之修改

    文件除r.w.a方式打开外,还可以有多种组合方式如r+ w+ a+等多种方式 1.r+ 读写模式介绍,开始读是从一行开始读,写永远从最后开始写(类似于追加) # f = open("test ...

  10. java 递归打印20个斐波那契数

    class Test { public static void main(String[] args) { // feibo j=new feibo(); for (int n = 1; n < ...