2018年刚刚过完年,从今天起,做一个认真的技术人。开始进入记笔记阶段。

python内置了很多数据结构,list , set,dictionary

1、将序列分解为单独的变量

1.1 通过赋值的方式,只要等号左右的变量个数与结构与序列一致

p=(4,5)

x,y=p

1.2不只是序列,只要是可迭代的对象,都可以进行分解

s='hello'

a,b,c,d,e = s

如果想丢弃某些变量, 可以选一个用不到的变量,作为丢弃值的名称。

data=['ABC',  50, (2012,1,2)]

_, price , _ = data , 这里用到的是下划线

records = [

('foo', 1, 2),

('bar', 'hello'),

('foo', 3, 4)

]

def do_foo(x, y ):

print ('foo', x, y)

for  tag, *args in  records:

if tag == 'foo':

do_foo(*args)

1.3 保存最后的几个变量

collections.deque

q = deque(maxlen=3),长度为3的一个队列

q.append(1)

q.append(2)

q.append(3)

q.append(4)

q.appendleft() 从左侧入参数, q.popleft(), q.pop()

from collections import  deque

def search(lines, pattern , history =5 ):
previous_lines = deque(maxlen=history)
for line in lines:
if pattern in line:
yield line, previous_lines
previous_lines.append(line) if __name__ == '__main__':
with open('some.txt') as f :
for line , previouslines in search(f, 'python', 5):
for pline in previouslines:
print(pline, end='& ')
print(line, end='% ')
print('-'*20) 1.4 找出最大或者最小的n个元素
import heapq
nums=[1,3,2,9,4,8,7,6]
smalllist = heapq.nsmallest(3,nums)
biglist = heapq.nlargest(3,nums) 1.5在list中可以经常用到一个列表推导式:
x = 'abcde'
y = 'hijkl'
comp = [(m,n) for m in x if m >'a' for n in y if n >'h']

推导式与filter, map的比较:
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list
map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回 生成器的表达式:
如果数据比较多时,list明显需要占用太多的内存,生成器才是比较好的选择

python 学习笔记一 (数据结构和算法)的更多相关文章

  1. python学习笔记五——数据结构

    4 . python的数据结构 数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.python提供的几种内置数据结构——元组.列表.字典和序列.内置数据结构是Python语言的精 ...

  2. Python学习笔记系列——数据结构相关

    Python有4种数据结构:列表(list).字典(dictionary).元组(Tuple).集合(set).从最直接的感官上来说,这四种数据结构的区别是:列表中的元素使用方括号括起来,字典和集合是 ...

  3. 学习笔记:[算法分析]数据结构与算法Python版[基本的数据结构-上]

    线性结构Linear Structure ❖线性结构是一种有序数据项的集合,其中 每个数据项都有唯一的前驱和后继 除了第一个没有前驱,最后一个没有后继 新的数据项加入到数据集中时,只会加入到原有 某个 ...

  4. 学习笔记:[算法分析]数据结构与算法Python版

    什么是算法分析 对比程序,还是算法? ❖如何对比两个程序? 看起来不同,但解决同一个问题的程序,哪个" 更好"? ❖程序和算法的区别 算法是对问题解决的分步描述 程序则是采用某种编 ...

  5. Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  6. Python学习笔记(3)--数据结构之列表list

    Python的数据结构有三种:列表.元组和字典 列表(list) 定义:list是处理一组有序项目的数据结构,是可变的数据结构. 初始化:[], [1, 3, 7], ['a', 'c'], [1, ...

  7. C学习笔记-基础数据结构与算法

    数据结构 数据(data)是对客观事物符号表示,在计算机中是指所有能输入的计算机并被计算机程序处理的数据总称. 数据元素(data element)是数据的基本单位,在计算机中通常做为一个整体进行处理 ...

  8. Python学习笔记(5)--数据结构之字典dict

    字典(dict) 定义:键值对集合 初始化:{}, {'1' : 'abc', '2' : 'def'} 1.增加:单个数据直接赋值  update(dict2) ---把dict2的元素加入到dic ...

  9. Python学习笔记(4)--数据结构之元组tuple

    元组(tuple) 定义:tuple和list十分相似,但是tuple是不可变的,即不能修改tuple 初始化:(), ('a', ) , ('a', 'b')   //当只有一个元素时,需加上逗号, ...

  10. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

随机推荐

  1. js之条件判断

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. list tuple dict (列表,元祖,字典间的相互转换)

    #-*- coding:UTF-8 -*- #author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串, ...

  3. 带你全面分析嵌入式linux系统启动过程中uboot的作用

    资料链接:http://mp.weixin.qq.com/s/rYVchD-xy7Bdkc1O3fW2Wg

  4. [spoj1182][Sorted Bit Sequence] (数位dp)

    Description Let's consider the 32 bit representation of all integers i from m up to n inclusive (m ≤ ...

  5. Spring核心技术(一)——IoC容器和Bean简介

    IoC容器和Bean简介 这章包括了Spring框架对于IoC规则的实现.Ioc也同DI(依赖注入).而对象是通过构造函数,工厂方法,或者一些Set方法来定义对象之间的依赖的.容器在创建这些Bean对 ...

  6. Leetcode 76.最小覆盖子串

    最小覆盖子串 给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", T = "A ...

  7. Springmvc 一个简单的管理系统 我所遇到的坑1(持续更新)

    前言 好久没有用springmvc写项目了,抽时间写一个简单的springmvc项目 是什么(what)为什么(why)怎么做(how) 1.读书破万卷下笔如有神(理清思路,知识储备和前期整理) 2. ...

  8. Maven安装好后包下载的测试命令和配置变量的查看命令:mvn help:system

    mvn help:system 该命令会打印出所有的Java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助.运行这条命令的目的是为了让Maven执行一个真正的任务.我们可以从命令行输出看到M ...

  9. ms sql SERVER 下载

    企业版DVD SQL Server 2005 Enterprise Edition(支持超大型企业) 32 位DVD: ed2k://|file|cs_sql_2005_ent_x86_dvd.iso ...

  10. 复习es6-解构赋值+字符串的扩展

    1. 数组的解构赋值 从数组中获得变量的值,给对应的声明变量赋值,,有次序和对应位置赋值 解构赋值的时候右边必须可以遍历 解构赋值可以使用默认值 惰性求值,当赋值时候为undefined时候,默认是个 ...