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() 方法的语 ...
随机推荐
- maven学习(二)maven常用的命令
参考博客:(http://blog.csdn.net/keda8997110/article/details/20925449) 以下命令都是基于命令行的操作,也可以直接在eclipse等IDE上ma ...
- cobbler自动安装
基础环境:centos7.2 本地IP地址:192.168.56.12 网络环境:桥接模式 一.安装cobbler # rpm -ivh http://mirrors.aliyun.com/epel/ ...
- IOS 即时通讯的框架 配置环境
一.了解XMPP 协议(标准)XMPP 即时通讯协议SGIP 短信网关协议 这手机发短信 移动支付和网页支付 0x23232[0,1] 0x23232 0x23232 0x23232 只有协议,必须会 ...
- ExtJS4 ajax请求同步异步问题
今天在写代码过程中遇到一个奇怪的问题.事情是这种,我写了一个简单的页面用来删除选中的用户,请看以下: 由于后台的servlet的代码实现了依据用户名来删除一条记录.所以我在前台的ExtJS代码里面用了 ...
- 初学Pollard Rho算法
前言 \(Pollard\ Rho\)是一个著名的大数质因数分解算法,它的实现基于一个神奇的算法:\(MillerRabin\)素数测试(关于\(MillerRabin\),可以参考这篇博客:初学Mi ...
- 效率对比:各种语言构造100W个时间对象
原本是用perl写了一个通过给定的时间范围来筛选一个比较大的日志文件.但是测试发现筛选130W行日志需要2分多钟,对其中几个低效率函数单独进行了效率测试,发现构造100W个时间对象所花时间也是个大户. ...
- jsp的4个作用域区别( pageScope、requestScope、sessionScope、applicationScope)
简单描述 page里的变量没法从index.jsp传递到test.jsp.只要页面跳转了,它们就不见了. request里的变量可以跨越forward前后的两页.但是只要刷新页面,它们就重新计算了. ...
- <jsp:include>和<%@include file=""%>的区别(简单了解)
简单了解 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改.由于被包含的文件是在编译时才插入的 ...
- 【洛谷P1367】蚂蚁
蚂蚁 [题目描述] 在一根无限长的木棍上,用n只蚂蚁,每只蚂蚁有一个初始位置和初始朝向,蚂蚁们以每秒一个单位的速度向前移动,当两只蚂蚁相遇时,它们会掉头(掉头时间忽略不计).现给出每只蚂蚁的初始位置和 ...
- 【luogu P3627 [APIO2009]抢掠计划】 题解
题目链接:https://www.luogu.org/problemnew/show/P3627 把点权转化到边权上去. #include <stack> #include <que ...