生成式子

  • 列表生成式
  • 字典生成式

深浅拷贝

 list0 = [12,24,34,32,[64,23]]

 # 浅拷贝:浅拷贝只是将最外层容器拷贝一份放在堆里面,内层的容器不会被拷贝还是使用原来的地址
list1 = list0.copy()
print(id(list0)) # 结果地址:4517928904
print(id(list1)) # 结果地址:4518644936 print(id(list0[4])) # 结果:4545167240
print(id(list1[4])) # 结果:4545167240 # 深浅拷贝对应的模块
import copy # 浅拷贝。模块中的浅拷贝就相当于列表中自带的copy
list2 = copy.copy(list0)
print(id(list2))
print(id(list0)) print(id(list0[4]))
print(id(list2[4])) # 深拷贝。不仅外层地址拷贝一份新的,内层也会拷贝一份新的出来
list3 = copy.deepcopy(list0)
print(id(list0)) # 结果:4513963976
print(id(list3)) # 结果:4519921672 print(id(list0[4])) # 结果:4513963912
print(id(list3[4])) # 结果:4519922696 """
内容不可变对象没有深浅拷贝一说。地址是不变的
"""
a = 10
b = copy.copy(a)
c = copy.deepcopy(a)
print(id(a)) #
print(id(b)) #
print(id(c)) # 

排序算法

  •  冒泡排序
  规则: 每一次遍历比较列表中的元素时,都是从左向右两两进行比较。
          每一次遍历比较之后都会得到最值,下一次遍历,最值元素不会再参与比较。        
          每一次遍历都会少一个元素。每次遍历都是从零元素开始。
  遍历循环:需要双层遍历
        内层遍历作用:控制遍历列表,取元素进行比较。控制列表元素比较次数。
        外层遍历作用:到底经历了多少次遍历,完成了排序效果。控制遍历的次数
        遍历的次数为列表长度-1, 每次遍历比较的次数为:列表长度 - 第几次遍历
 """
第一次遍历取了7个元素,意味着该遍历比较了7次
第二次遍历取了6个元素,意味着该遍历比较了6次
第三次遍历取了5个元素,意味着该遍历比较了5次
......
列表的长度 = 第几次遍历 + 所取元素比较次数
"""
list0 =[23,45,67,89,43,658,24,25,]
for out in range(1,len(list0)):
for inner in range(len(list0)-out):
if list0[inner]<list0[inner+1]:
list0[inner],list0[inner+1] = list0[inner+1],list0[inner]
print(list0)
  • 选择排序
  规则:每次排序遍历都找对应的最小值,再与指定的位置元素进行交换。
      第一次遍历:假设第一个元素最小的,与之后的每一个元素进行比较,找到最小值后与第一个元素进行交换
           (或者假设脚标为0的元素是最小的,然后遍历找到真正最小值对应的脚标)
        第二次遍历:假设第二个元素是剩余元素最小的值,与之后的每一个元素比较,找到这其中最小的再与第二个元素位置交换
              遍历列表的次数:列表长度 - 1
 
        第一次遍历的时候,遍历的起始脚标是0;第二次遍历的时候,遍历的起始脚标是1,….可以通过最值索引,然后再交换
 """
遍历列表的次数
第一次遍历,遍历的起始脚标是0
第二次遍历,遍历的起始脚标是1
第三次遍历,遍历的起始脚标是2
.......
遍历的次数 = len(list0)- 1
遍历的起始脚标 = 遍历的次数 - 1
"""
list0 =[34,56,3,66,32,78]
for out in range(1,len(list0)):
for inner in range(out-1,len(list0)):
if list0[out-1]<list0[inner]:
list0[inner],list0[out-1] = list0[out-1],list0[inner]
print(list0)
  •  插入排序
  反向冒泡                
  规则:第一次取  脚标为1的元素 与之前的元素两两进行比较
         第二次取  脚标为2的元素 与之前的元素两两进行比较
  好处:排序过程中会出现部分有序的情况,可以终止排序
  规律:遍历的次数:len(str)-1
         第一次遍历的起始值是1,
         第二次遍历的次数是2 。。。
 List0 = [32,45,67,4,734,78,]
for out in range(1,len(list0)):
for inner in range(out,0,-1):
if list0[inner]< list[inner-1]:
交换位置
else:
break

查找算法

  • 普通查找
  • 二分查找

函数类别

递归调用

单例模式



闭包

装饰器

生成器

迭代器

python高级 之(零) --- 重点难点的更多相关文章

  1. es6-promise源代码重点难点分析

    摘要 vue和axios都可以使用es6-promise来实现f1().then(f2).then(f3)这样的连写形式,es6-promise其实现代浏览器已经支持,无需加载外部文件.由于promi ...

  2. AXIOS源代码重点难点分析

    摘要 vue使用axios进行http通讯,类似jquery/ajax的作用,类似angular http的作用,axios功能强大,使用方便,是一个优秀的http软件,本文旨在分享axios源代码重 ...

  3. python高级(1)—— 基础回顾1

    Python基础回顾 认识变量 在学习了之前的Python零基础入门系列[洗礼灵魂,修炼Python](说明一下,这个系列现在回过来再来看这个名字确实好土啊,然后有些知识点感觉还不太精准,后期看如果有 ...

  4. 第213天:12个HTML和CSS必须知道的重点难点问题

    12个HTML和CSS必须知道的重点难点问题 这12个问题,基本上就是HTML和CSS基础中的重点个难点了,也是必须要弄清楚的基本问题,其中定位的绝对定位和相对定位到底相对什么定位?这个还是容易被忽视 ...

  5. 老男孩Python高级全栈开发工程师【真正的全套完整无加密】

    点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师[真正的全套完整无加密] 课程大纲 老男孩python全栈,Python 全栈,Python教程,Django ...

  6. python高级学习目录

    1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...

  7. Python高级应用程序设计任务

    Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...

  8. Python高级应用程序设计任务要求

    Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...

  9. Python高级应用程序设计任务期末作业

    Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...

随机推荐

  1. vue-cli中模拟数据的两种方法

    我所使用的是新版vue-cli 首先进行所需插件的安装,vue-resource,json-server,proxyTable. 目录结构如图 在main.js中引入vue-resource模块,Vu ...

  2. 《Learning Structured Representation for Text Classification via Reinforcement Learning》论文翻译.md

    摘要 表征学习是自然语言处理中的一个基本问题.本文研究了如何学习文本分类的结构化表示.与大多数既不使用结构又依赖于预先指定结构的现有表示模型不同,我们提出了一种强化学习(RL)方法,通过自动覆盖优化结 ...

  3. Python之threading模块的使用

    作用:同一个进程空间并发运行多个操作,专业术语简称为:[多线程] 1.任务函数不带参数多线程 #!/usr/bin/env python # -*- coding: utf-8 -*- import ...

  4. node的http与前端交互示例(入门)

    一.目录(node_modules是npm install后新增的) node 和 npm 版本 npm install http 二.node下的index.js var http = requir ...

  5. VUE: 移动端长按弹出确认删除地址(2)

    之前有一篇文章也写了长按弹出确认框的功能,在android机上测试过完全没问题,到后面整体测试时发现IOS这个功能长按移除就消失了, 除非长按不松手,用另外一只手点击确定才能完成操作,所以这次做了修改 ...

  6. 判断一个ip地址合法性(基础c,不用库函数)

    #include <stdio.h> int judge(char *strIp); int main() { ]; ) { scanf("%s", a); == ju ...

  7. TTTTTTTTTTTTT CDOJ 1136 邱老师玩游戏 树形dp

    邱老师玩游戏 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  8. 『ZJOI2019 D2T2』语言

    ~~ 话说,本题考场想出三只\(log\)的暴力做法,被卡成暴力了.~~ 题目分析 首先考虑枚举每一个点,计算这个点可以和多少点进行交易. 将所有经过该点的路径\(s,t\)拿出,那么这些极远的\(s ...

  9. apt 和 apt-get的区别

    apt 和 apt-get的区别 - liudsl的博客 - CSDN博客  https://blog.csdn.net/liudsl/article/details/79200134 Linux软件 ...

  10. Codeforces 385C Bear and Prime Numbers(素数预处理)

    Codeforces 385C Bear and Prime Numbers 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1). 但是,我在统计数组中元素出 ...