python集合、函数实例
集合
1、list ==》允许重复的集合,可修改
2、tuple ==》允许重复的集合,不可修改
3、dict ==》
4、set ==》不允许重复的集合,相当于不可重复的列表
set
是一个无序的且不重复的元素集合,不能通过下标取值
创建
s=set()
s={11,22,44,55}可以这样创建set
转换
s=set([11,22,22,333])#转换时自动忽略重复的
l=""
s=set(l) s.add(33)添加一个元素
s.clear()清除元素
se={1,2,3,4}
b={4,4,4}
bb=se.difference(b)#找se中存在,b中不存在的的集合,需要用一个新的
#值接收
bb=se.difference_update(b)#找se中存在,b中不存在的的集合,并把值
#赋给se,不用赋给新的值(在原数据中更新)
se={1,2,3,4}
se.discart(5)移除,出错不报错
se.remove(5)移除,出错报错
se={1,2,3,4}
be={0,2,3,6}
ret=se.intersection(be)#取交集
print(ret)
se.intersection_update(be)#取交集在se中更新,(赋值给原数据)
ret=se.isdisjoint(be)#检测是不是无交集,有交集F,无T
se.issubset(be)#检测se是否为be的子集
se.issuperset(be)#检测se是否为be的父集(be是否为se的子集)
ret=se.pop()#ret为移除的值,由于set是无序的,所以删除最后一个值
#也是不确定的
ret=se.symmetrice(be)#把se中存在,be中不存的集合,和be中存在,se中不存
#在的集合赋值给ret(对称差集)
ret=se.symmetrice_difference_update(be)#在se中更新对称差集
ret=se.union(be)#取并集重复的只输出一个
se.update(be)#把be中的集合循环的添加到到se中
se.update([44,33,55])#把这个列表中的数据循环的添加到se中
例题old_dict={"#1":11,"#2":22,"#3":100,}
new_dict={"#1":33,"#4":22,"#7":100,}
将old_dict和new_dict都有的元素用new的更新old的
new_dict有的old_dict没有的添加到old中
将old_dict有的new_dict没有的删除
解题z
old_dict={"#1":11,"#2":22,"#3":100,}
new_dict={"#1":33,"#4":22,"#7":100,}
old_keys=old_dict.keys()
new_keys=new_dict.keys()
old_set=set(old_keys)
new_set=set(new_keys)
del_set=old_set.difference(new_set)
add_set=new_set.difference(old_set)
ass=new_set.intersection(old_set)
for i in old_set:
for k in del_set:
if i==k:
old_dict.pop(i)
for i in old_dict.keys():
for k in ass:
if i==k:
old_dict[i]=new_dict[i]
for i in add_set:
item={i:new_dict[i]}
old_dict.update(item)
print(old_dict)
print(ass)
三目运算,三元运算
if 1==1:
name="alex"
else:
name="eric"
name=值1 if 条件 else 值2
如果"条件"成立就把"值1"赋值给"name"
如果"条件"不成立就把"值2"赋值给"name"
name="alex" if 1==1 else "eric"
print(name)
#str,在内存中,一次性创建,不能被修改,只要修改,就在创建
#就是修改以后就重新创建一个,在指向这新创建的,而那个原来的还在
#只是不用了
#list,只要可以修改的,就是动态的,相当于链表,有下一个元素的位置
#和上一个元素的位置
#如果对列表里的元素进行里修改就重新创建一,它的索引禁指向新创建的
内容
a="alex"
浅拷贝
n1=123
import copy
n2=copy.copy(n1)
id<n1>
id<n2>
此时n1和n2的地址相同,字符串内部有优化机制
深拷贝
n1=123
import copy
n2=copy.deepcopy(n1)
id<n1>
id<n2>
此时n1和n2的地址也相同
数字、字符串
只要是拷贝,赋值
地址都一样

列表,字典,元素、、、、
深拷贝拷贝除了最里面那一层的所有层
浅拷贝拷贝最外面的那一层
过程式编程
函数式编程
创建一个函数
def xx():
print("alex")
return(可以是任意类型的值)
xx()
如果没有写返回值,这对一个函数赋值之后(a=xx())则返回一个None给a
并不是像其他语言的函数一样不返回值
参数
def kd(p)
print(p) p为形参
return True ret =kd("") 实参
print(ret)
python集合、函数实例的更多相关文章
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- python迭代器与iter()函数实例教程
python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...
- python集合set{ }、集合函数及集合的交、差、并
通过大括号括起来,用逗号分隔元素,特点 1.由不同元素组成,如果定义时存在相同元素,处理时会自动去重 2.无序 3.元素只能是不可变类型,即数字.字符串.布尔和元组,但集合本身可变 4.可直接定义集合 ...
- Python 集合内置函数大全(非常全!)
Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s ...
- Python回调函数用法实例
Python回调函数用法实例 作者:no.body链接:https://www.zhihu.com/question/19801131/answer/27459821 什么是回调函数? 我们绕点远路来 ...
- python 常用函数集合
1.常用函数 round() : 四舍五入 参数1:要处理的小数 参数2:可选,如果不加,就是不要小数,如果加,就是保留几位小数 abs() :绝对值 ...
- python strip() 函数和 split() 函数的详解及实例
strip是删除的意思:split则是分割的意思.strip可以删除字符串的某些字符,split则是根据规定的字符将字符串进行分割. 1.Python strip()函数 介绍 函数原型 声明:s为字 ...
- Python入门-函数的使用到程序的公布安装
Python入门-函数的使用到Python的公布安装 本文主要适合有一定编程经验,至少掌握一门编程语言的人查看. 文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法 ...
- Python randrange() 函数
Python randrange() 函数 Python 数字 描述 randrange() 方法返回指定递增基数集合中的一个随机数,基数缺省值为1. 语法 以下是 randrange() 方法的语 ...
随机推荐
- leetcode-pascal triangle I&&II
对于第2个pascal triangle,通过观察可以发现,其实只需要2个额外的变量来记录,于是就设了个tmp数组. 整体有点DP问题中的滚动数组的感觉. #include <vector> ...
- SQL 数据匹配更新
萌新的成长之路! 最近遇到的一个需求是需要将两张关联的表的数据进行匹配(dbo.SystemUser[系统用户表]:dbo.V_Temp[系统权限视图]),即通过匹配用户ID与系统ID(拥有的系统ID ...
- Golang Gin 项目使用 Swagger
Golang Gin 项目使用 Swagger 标签(空格分隔): Go 首先需要github.com/swaggo/gin-swagger和github.com/swaggo/gin-swagger ...
- JavaScript模块化编程之AMD - requireJS基础使用
JavaScript模块化编程之AMD requireJS基础使用 标签(空格分隔): JavaScript 参考文章 AMD规范 AMD是"Asynchronous Module Defi ...
- WAKE-WIN10-SOFT-VS2013及工具
1,下载安装,,,,,,, 2,配置 3opencv 3,1官网:http://opencv.org/ 3,3VS2013+OPENCV249配置 http://jingyan.baidu.com/a ...
- SQL专题
1. 值为null的字段,假如update table set a=a+1,则会报sql错误 2. //todo
- 免费的SSL证书,你值得拥有!Let's Encrypt 试用体验记录
早上收到 Let’s Encrypt 的邮件,说偶之前申请的已经通过了,于是马上开始试用.Let’s Encrypt 是一个新的数字证书认证机构,它通过自动化的过程消除创建和安装证书的复杂性,为网站提 ...
- day6-基础 装饰器,生成器,迭代器
1.装饰器 定义:给其他函数装饰(添加附加功能)的函数 原则:1.不能修改被装饰的函数的源代码. 2.不能修改北庄施的函数的调用方式 实现所需要求:1.函数即便量 2.高阶函数 3.嵌套函 ...
- python 带BOM头utf-8的响应解码
接口响应编码格式为带BOM头utf-8.直接获取响应的text出现乱码. '''dinghanhua2018-11requests text与content,指定响应的encoding''' api ...
- 「C基础」位运算
0. 原码.补码.反码 初学者只做了解即可 见 张子秋的博客 无论正负数,在内存中存储的都是补码 正数:反码 == 原码 == 补码 负数:反码 == ~原码 补码 == 反码+1 1. & ...