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() 方法的语 ...
随机推荐
- jQuery Event.stopImmediatePropagation() 函数详解
stopImmediatePropagation()函数用于阻止剩余的事件处理函数的执行,并防止当前事件在DOM树上冒泡. 根据DOM事件流机制,在元素上触发的大多数事件都会冒泡传递到该元素的所有祖辈 ...
- MVG配置
MVG的配置:(前提是一个表的字段包含多值字段,一般是1:M或M:M的关系) 想要在学生界面显示多个教师的名称. 1.首先在一个Project中,建两张表学生表和教师表T_Stu与T_Tea和一张中间 ...
- Siebel Tools client安装假死在92%问题解决
Solution to this error: This issue happens incase of installation is on unsupported operating system ...
- Apache常见问题
Apache如何修改端口? 找到Apache安装目录,conf目录下的httpd.conf文件,用编辑器打开. 找到“Listen 80”,修改为我们想要的端口号就可以了,如“Listen 8080” ...
- bind 详解
请看我的有道云笔记: http://note.youdao.com/noteshare?id=eaf4194473cf4294776fbc263ffe6b89&sub=5CB214C594E0 ...
- apache poi根据模板导出excel
需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; im ...
- Android开发最佳学习路线图(转)
Android开发总体路线图: 基础学习——JavaSE: 很多朋友一上手就开始学习Android,似乎太着急了一些. Android应用程序开发是以Java语言为基础的,所以没有扎实 ...
- 如何在Kubernetes里给PostgreSQL创建secret
创建一个initdb.sql文件,输入如下内容: -- This is a postgres initialization script for the postgres container. -- ...
- Python 操作Redis 转载篇
Python操作Redis数据库 连接数据库 StrictRedis from redis import StrictRedis # 使用默认方式连接到数据库 redis = StrictRedis( ...
- ConcurrentMap注意事项
java.util.concurrent.ConcurrentMap接口和ConcurrentHashMap实现类 只能在键不存在时将元素加入到map中, 只有在键存在并映射到特定值时才能从map中删 ...