python学习day-4 集合与函数
---恢复内容开始---
一、数据类型及变量总结
1、可变与不可变 修改变量的值,id可不可变
可变:id不变 列表,字典
不可变:id变了 字符串,数字,元祖
2、访问顺序
直接访问:数字
顺序访问(索引):字符串 列表 元祖
映射访问:字典
字典比列表速度快,但是占内存大
3、存放元素个数
容器类型:列表 元祖 字典
原子类型:数字 字符串
二、集合定义基本操作方法set
定义:不同元素组成的集合,是一组无序的,元素类型是不可变类型(数据字符串元祖)
s={1,2,3,33,8,9}
s=set{'hello'} 输出s {'o','e','l','h'}
1.集合的内置方法
s={1,2,3,4,5,6} 1.添加 adds.add('s')s.add('3')s.add(3)print(s) 3.清空clears.clear()print(s) 4.复制s1=s.copy() 5.随机删pops.pop() 6.指定删除remove discards.remove('sb')s.remove('hellol') #删除元素不存在会报错s.discard('sbbbb')#删除元素不存在不会报错print(s)
2.集合的关系运算交叉并集
有一个笨方法 python_l=['lcg','szw','zjw']
linux_l=['lcg','szw'] python_and_linux_l=[]for p_name in python_l: if p_name in linux_l: python_and_linux_l.append(p_name) print(python_and_linux_l)
python_l=['lcg','szw','zjw','lcg']linux_l=['lcg','szw','sb']p_s=set(python_l)l_s=set(linux_l
1.求交集&print(p_s,l_s)print(p_s.intersection(l_s))print(p_s&l_s) 2.求并集|
print(p_s.union(l_s))print(p_s|l_s) 3.差集print('差集',p_s-l_s)print(p_s.difference(l_s))print('差集',l_s-p_s)print(l_s.difference(p_s)) 4.交叉补集^print('交叉补集',p_s.symmetric_difference(l_s))print('交叉补集',p_s^l_s) python_l=['lcg','szw','zjw','lcg']linux_l=['lcg','szw','sb']p_s=set(python_l)l_s=set(linux_l)print(p_s,l_s)print('差集',p_s-l_s)p_s=p_s-l_sp_s.difference_update(l_s)print(p_s) 5.isdisjoint:如果s1与s2做交集运算,如果没有交集,就返回Trues1={1,2}s2={2,3,5}print(s1.isdisjoint(s2)) 6.判断子集父级issubset issupersetissubset:s1<=s2s1={1,2}s2={1,2,3}print(s1.issubset(s2))#s1 是s2 的子集print(s2.issubset(s1))#False issuperset:s1>=s2print(s2.issuperset(s1))#s1 是s2 的父集 7.更新updates1={1,2}s2={1,2,3}s1.update(s2) #更新多个值 s1.add(1,2,3,4) #更新一个值s1.union(s2) #不更新 print(s1) 8.frozenset 定义不可集合s=frozenset('hello')print(s) 不考虑顺序进行列表去重names=['alex','alex','wupeiqi']names=list(set(names))print(names)
三、百分号字符串拼接
1.%s 万能 %d 数字
msg='i am %s my hobby is %s' % ('lhf','alex')
print(msg)
msg='i am %s my hobby is %s' % ('lhf',1)msg='i am %s my hobby is %s' % ('lhf',[1,2])print(msg)name='lhf'age=19msg='i am %s my hobby is %s' % (name,age) 2.打印浮点数 percent &.f .后边的保留几位数字 默认保留六位数字tpl = "percent %.2f" % 99.976234444444444444 3.打印百分比 %%tpl = 'percent %.2f %%' % 99.976234444444444444 4.传字典 tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}print(tpl) 5.%(names)[+-空格0]占有位数 s+右对齐,正数前加正好,负数前加负号—左对齐,正数前无符号,负数前加负号空格右对齐,正数前加空格,负数前无符号0左对齐,正数前无符号,负数前加负号,0填空白处 msg='i am %(name)+60s my hobby is alex' %{'name':'lhf'} 6.加颜色msg='i am \033[43;1m%(name)+60s\033[0m my hobby is alex' %{'name':'lhf'}
四、format字符串格式化
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 {:s}, age {:d}".format(*["seven", 18])tpl = "i am {:s}, age {:d}".format("seven", 18) #["seven", 18] l=["seven", 18]tpl = "i am {:s}, age {:d}".format('seven',18)print(tpl) tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{}".format(15, 15, 15, 15, 15, 15.87623, 2)print(tpl)
b二进制 o八进制 d 整型 x小写十六进制 X大写十六进制 %百分号
五、函数
def test(x): ''' 2*x+1 :param x:整形数字 :return: 返回计算结果 ''' y=2*x+1 return y def test(): ''' 2*x+1 :param x:整形数字 :return: 返回计算结果 ''' x=3 y=2*x+1 return ya=test()print(a) 过程:就是没有返回值的函数 def test01(): msg = 'test01' print(msg)
def test(x,y,z):#x=1,y=2,z=3 print(x) print(y) print(z) 位置参数,必须一一对应,缺一不行多一也不行test(1,2,3) 关键字参数,无须一一对应,缺一不行多一也不行test(y=1,x=3,z=4) 混合使用的话:位置参数必须在关键字参数左边test(1,y=2,3)#报错test(1,3,y=2)#报错test(1,3,z=2)test(1,3,z=2,y=4)#报错test(z=2,1,3)#报错 默认参数:def handle(x,type='mysql'): print(x) print(type)handle('hello')handle('hello',type='sqlite')handle('hello','sqlite') def install(func1=False,func2=True,func3=True): pass 参数组:**字典 *列表def test(x,*args): print(x) print(args) test(1,2,3,4,5) 输出args=(2,3,4,5) 当做元祖的方式来处理test(1,{'name':'alex'})test(1,['x','y','z']) 整个列表变成了一个整体放入args里test(1,*['x','y','z']) 元祖方式处理test(1,*('x','y','z')) def test(x,**kwargs): print(x) print(kwargs)test(1,y=2,z=3)test(1,1,2,2,2,2,2,y=2,z=3) 报错test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值 def test(x,*args,**kwargs): print(x) print(args,args[-1]) print(kwargs,kwargs.get('y'))test(1,1,2,1,1,11,1,x=1,y=2,z=3) #报错 test(1,*[1,2,3],**{'y':1})
转载于:https://www.cnblogs.com/wangxiaoyienough/p/9255776.html
python学习day-4 集合与函数相关推荐
- Python学习笔记:集合(set)
Python学习笔记:集合(set) 1.集合概念 集合是互异元素的无序集合.类似于只有键没有值的字典. 2.创建集合 有两种方法创建集合:一个是利用set函数,一个是利用花括号创建集合字面量. 3. ...
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- 【Python学习笔记】第八章 函数
[Python学习笔记]第八章 函数 文章目录 [Python学习笔记]第八章 函数 前言 8.1 定义函数 8.2 调用函数 8.2.1 使用位置参数调用函数 8.2.2 使用关键字参数调用函数 8 ...
- Python遍历字典、集合与函数
Python遍历字典.集合与函数 一.遍历字典 代码块 意义 keys() 该⽅法返回字典所有的key values() 该⽅法返回⼀个序列,序列中保存有字典的值 items() 该⽅法会返回字典中所 ...
- python学习——函数式编程——高阶函数
python学习--函数式编程--高阶函数 函数式编程(高阶函数):1:map && reduce; 2 : filter; 3: sorted; ------------------ ...
- python学习总结1—高阶函数
python 高阶函数学习 高阶函数 介绍python 高阶函数的使用方法 map/reduce函数 map函数 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. ...
- Python学习日志10 - 高阶函数和高级应用
Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 前言 进入正题 Python学习日志10课 - 高阶函数 ...
- python学习笔记(五)——函数基础和函数参数
学函数的目的是什么?函数是做什么的? 学函数目的: ①不学函数容易造成:1.复杂度增大:2.组织结构不够清晰:3.可读性差:4.代码冗余:5.可扩展性差 ②学函数后可以: 1.使用函数可以提高编写的效 ...
- Python学习笔记(七)函数的使用
python中的函数使用较简单,这里列出值得注意的几点: 内嵌函数 例如: # coding: utf-8def foo():def bar():print 'bar() called.'print ...
- Python学习-03(集合,文件,编码)
上周复习: 列表增删改查 元祖是可读列表 字符串操作 字典是无序的,通过key来找值.字典可以嵌套列表和字典 本周内容:集合--文件---字符编码 集合引入: #随机生成20个小于20的数,输出所有 ...
最新文章
- angular2初入眼帘之-搭个环境
- 设计模式(一)-单例模式
- 成功有感之给年轻人的10个忠告
- Jmeter之线程组详解
- 【多线程】1.条件变量--std::condition_variable
- 针对媒体不实报道误导大众--抹黑C#工资垫底
- mongodb or and 条件拼凑 Query.And Query.Or
- QML工作笔记-界面登录框设置(方便其他控件居中)
- OJ1031: 判断点在第几象限
- C#LeetCode刷题之#867-转置矩阵(Transpose Matrix)
- 数字信号处理——DFT的一些理解
- YUV序列下采样以及彩色4:2:0与灰度4:0:0转换---基于matlab实现
- [深入Python]Alex Martelli的Borg类
- 重拾C++之虚函数和虚基类以及抽象类
- gimp 架构_GIMP 2.10正式发布,史无前例的改动
- 邮箱服务器满了foxmail,foxmail邮箱的容量满了,应该怎样删除-上海腾讯企业邮箱[foxmail]...
- 关于TI公司DSP工程调用DELAY_US()进入非法中断问题的解决
- 25 Creative Ways to Promote Your App for Free
- 安装docker桌面版(Windows)
- 大型互联网支付公司职位--朝阳
热门文章
- 前端javascript经典面试题集合(2020年最新)
- photoshop cs5快捷键的用法总结
- JavaScript算法(实例三)数组排序--冒泡排序 / sort() / reverse() / 比较函数
- JavaScript 面向对象编程(三) —— 函数进阶 / 严格模式 / 高阶函数 / 闭包 / 浅拷贝和深拷贝
- 入门机器学习(十九)--推荐系统(Recommender Systems)
- AC日记——阶乘和 openjudge 1.6 15
- HttpUtility.UrlEncode 方法 (String) 对 URL 字符串进行编码 NET Framework 4.6 and 4.5
- (转)c++模版:包含模型、显式实例化、分离模型
- Windows下Maven 环境配置
- Linux下如何从普通用户切换到root用户