python全栈开发 * 07知识点汇总 * 180607
07 set集合,深浅拷⻉以及部分知识点补充
一.while,for 循环知识点补充
二.int, str的相关操作
1.列表变字符串
# lst=["红","橙","黄","绿","青","蓝","紫"]
方法一 # s="_".join(lst)
# print(s)
方法二 # sum=""
# for i in lst:
# sum=sum+i+"_"
# print(sum)
# 字符串连接
# s="金","木","水","火","土"
# s1="_".join(s)
# print(s1)
元组连接
# tu=("男","女","老","少")
# tu1="_".join(tu)
# print(tu1) 2 list删除问题
# lst=["红","橙","黄","绿","青","蓝","紫"]
方法一 clear
# lst.clear()
# print(lst)
方法二 del range(0,len(lst))
# for i in range(0,7):
# del lst[0]
# print(lst) 方法三 pop range(0,len(lst))
# for i in range(0,7):
# lst.pop(0)
# print(lst)
方法四 把要删除的元素保存在新列表中,循环新列表,删除旧列表.
# lst1=[]
# for i in lst:
# lst1.append(i)
# for el in lst1:
# lst.remove(el)
# print(lst)
3 dict 中的fromkey( )
#fromkey : 第一个参数中每一个拿出来和第二个参数组织成键值对.
#注意代码中只是更改了jay那个列表. 但是由于jay和JJ⽤的是同⼀个列表. 所以. 前⾯那个改了. 后⾯那个也会跟着改.
# dic=dict.fromkeys(["jay","jj"],["周杰伦","林俊杰"])
# dic.get("jay").append("蔡依林")
# print(dic)
4. dic中的元素在迭代过程中是不可以删除的.,需要把要删除的内容存在新列表中,循环新列表,删除旧列表
# lst=["红","橙","黄","绿","青","蓝","紫"]
# lst1=["黄","绿"]
# for el in lst1:
# lst.remove(el)
# print(lst)
5. set() 集合 是dict类型的数据,只存key的值,不存value的值.
特点: 元素不重复(应用"去重");无序;内容必须不可变(可哈希);set本身是可变的(增删改).
去重:
# lst=["红","橙","黄","绿","青","蓝","紫","青","绿"]
# s=set(lst)
# print(s)
set 是可变的,里面内容是不可变的
# s={"alex",1,True,{"你好"}} 不可行,因为{"你好"}不可哈希( 可变的)
#s={"麻花",[1,2,3,]} 不可行 因为[1,2,3]是列表,列表不可哈希( 可变的)
#s={"听","说","读","写",(1,3)} 可行 因为(1,3)是元组,元组是不可变的(可哈希)
6.set 增 删 改 查
增一
# s=set()
# s.add("大神")
# print(s)
增二 update迭代更新
# s={"赵","钱","孙","李","张","王"}
# s.update("吉孔孟")
# print(s)
# s.update(["中国"])
# print(s)
# s.update(["中","国"])
# print(s)
删一 pop() 随机删除
# s={"赵","钱","孙","李","张","王"}
# s1=s.pop()
# print(s1) 删除的元素
# print(s) 删除以后的结果
# 删二clear 打印出来是set()
删三remove
# s.remove("王") 删除指定元素
# print(s)
#修改 set无法直接修改,先删掉,再增加.
# s={"赵","钱","孙","李","张","王"}
# s.remove("王")
# s.add("吉")
# print(s)
查询
# s={"赵","钱","孙","李","张","王"}
# for el in s:
# print(el)
7. 其他操作
#交集 print(s1 and s2)
# s1={"赵","钱","孙","李","张","王"}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# print(s1&s2)
# print(s1.intersection(s2))
并集
# s1={"赵","钱","孙","李","张","王"}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# print(s1|s2)
# print(s1.union(s2))
差集 print(s1-s2) 得到第一个中单独存在的
# s1={"赵","钱","孙","李","张","王","杜"}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# print(s1-s2)
# print(s1.difference(s2))
反交集 两个集合中单独存在的数据 (和交集相反)
# s1={"赵","钱","孙","李","张","王","杜"}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# print(s1^s2)
# print(s1.symmetric_difference(s2))
#子集 print(s1<s2) set1是set2 的子集吗
# s1={"赵","钱","孙","李","张","王",}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# # print(s1<s2)
# print(s1.issubset(s2))
超集 print(s1<s2) print(s1.issuperset(s2))
# s1={"赵","钱","孙","李","张","王",}
# s2={"赵","钱","孙","李","张","王","吉","宋"}
# print(s1>s2)
# print(s1.issuperset(s2))
8. set集合本身是可以发⽣改变的. 是不可hash的. 我们可以使⽤frozenset来保存数据.frozenset是不可变的. 也就是⼀个可哈希的数据类型
# s1={"赵","钱","孙","李","张","王",}
# s=frozenset(s1)
# dic={s1:"123"}
# print(dic)
#9.深浅拷贝 (1)赋值:对于list, set, dict来说, 直接赋值. 其实是把内存地址交给变量. 并不是复制⼀份内容. 所以.lst1的内存指向和lst2是⼀样的. lst1改变了, lst2也发⽣了改变
list列表
# lst1=["红","橙","黄","绿","青","蓝","紫"]
# lst2=lst1
# print(lst1)
# print(lst2)
# lst1.append("粉")
# print(lst1)
# print(lst2)
ict字典
# dic1={"颜色":"红色","水果":"香蕉"}
# dic2=dic1
# print(dic1)
# print(dic2)
# dic1["蔬菜"]="番茄"
# print(dic1)
# print(dic2)
(2)浅拷贝 只拷贝第一层,第二层的内容不拷贝
# lst1=["风","雨","雪","霜"]
# lst2=lst1.copy()
# lst1.append("冰雹")
# print(lst1)
# print(lst2)
# print(id(lst1),id(lst2))
2
# lst2=["风","雨","雪","霜",["电","雷"]]
# lst3=lst2.copy()
# print(lst3)
# lst2[4].append("冰雹")
# print(lst2)
# print(lst3)
(3)深拷贝 把元素内部的元素完全进⾏拷⻉复制. 不会产⽣⼀个改变另⼀个跟着改变的问题
# import copy
# lst1=["番茄","白菜","胡萝卜",["苹果","荔枝","香蕉"]]
# lst2=copy.deepcopy(lst1)
# print(lst1)
# print(lst2)
# lst1[3].append("芒果")
# print(lst1)
# print(lst2)
.
list的删除问题
四.set 的集合
五深浅拷贝
python全栈开发 * 07知识点汇总 * 180607的更多相关文章
- python全栈开发 * 10知识点汇总 * 180612
10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...
- python全栈开发 * 01知识点汇总 * 180530
一 python简介. 1.创始人: 吉多 .范罗苏姆 \ (Guido van Rossum). 2.时间 : 1989年. 3.主要应用领域 : 云计算 \ WEB开发 \ ...
- python全栈开发 * 32知识点汇总 * 180717
32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...
- python全栈开发 * 27知识点汇总 * 180710
27 time os sys 模块 time 模块 一.表示时间的三种方式 时间戳(timestamp), 元组(struct_time),格式化时间字符串(Format string) 小 ...
- python全栈开发 * 26知识点汇总 * 180709
26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...
- python全栈开发 * 12 知识点汇总 * 180530
12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...
- python全栈开发 * 36知识点汇总 * 180721
36 操作系统的发展史 进程一.手工操作--穿孔卡片 1.内容: 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制 台开关启动程序针对 ...
- python全栈开发 * 31知识点汇总 * 180716
31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 ...
- python全栈开发 * 24 知识点汇总 * 180705
24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...
随机推荐
- ubuntu 配置 apt 使用代理
ubuntu 配置 apt 使用代理 仅配置系统代理是无法使 apt 也使用代理的,我们需要给 apt 独立配置代理. 方法 ubuntu 官方说明 :https://help.ubuntu.com/ ...
- DockerSwarm+Dubbo镜像与部署相关命令与参数
Docker 镜像 一.容器转镜像 docker commit <containerId> <image:tag> docker commit 3ffa4284ddca zoo ...
- 洛谷 P1739 表达式括号匹配
题目链接https://www.luogu.org/problemnew/show/P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为 ...
- IntelliJIdea 2016.2 使用 tomcat 8.5 调试spring的web项目时,bean被实例化两次导致timer和thread被启动了两遍的问题的解决
今天新搭建了一个spring的web项目,项目启动时会启动一个线程,线程里定时执行任务,另外还启动了一个定时器,每秒钟统计系统吞吐量等业务性能数据.但是调试的时候惊奇的发现定时器和线程均被启动了两次. ...
- Spring Boot项目的接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: import java.lang.an ...
- hive hbase区别
1.hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2.hive是面向行存储的数据库. 3.Hive本身不存储和计算数据,它完全依赖于H ...
- [转]Kindeditor图片粘贴上传(chrome)
原文地址:https://www.cnblogs.com/jsper/p/7608004.html 首先要赞一下kindeditor,一个十分强大的国产开源web-editor组件. kindedit ...
- Laravel-mix 中文文档
镜像地址 : https://segmentfault.com/a/1190000015049847原文地址: Laravel Mix Docs 概览 基本示例 larave-mix 是位于w ...
- Bayesian RL and PGMRL
简介: PGMRL: PGMRL就是把RL问题建模成一个概率图模型,如下图所示: 然后通过variational inference的方法进行学习: PGMRL给RL问题的表示给了一个范例,对解决很多 ...
- 【转】WPF Template模版之DataTemplate与ControlTemplate(一)
WPF系统不但支持传统的Winfrom编程的用户界面和用户体验设计,更支持使用专门的设计工具Blend进行专业设计,同时还推出了以模板为核心的新一代设计理念. 1. 模板的内涵 作为表现形式,每个控件 ...