美文网首页
数据结构

数据结构

作者: Kean_L_C | 来源:发表于2018-05-02 10:15 被阅读17次

内置序列

  • list、 tuple 和 collections.deque 这些序列能存放不同类型的数据。
  • str、 bytes、 bytearray、 memoryview 和 array.array, 这类序列只能容纳一种类型。
  • 容器序列存放的是它们所包含的任意类型的对象的引用, 而扁平序列里存放的是值而不是引用。
  • 可变序列: list、 bytearray、 array.array、 collections.deque 和memoryview。
    不可变序列: tuple、 str 和 bytes。

列表推到

以前看到过有的 Python 代码用列表推导来重复获取一个函数的副作用。 通常的原则是, 只用列表推导来创建新的列表, 并且尽量保持简短。 如果列表推导的代码超过了两行, 你可能就要考虑是不是得用 for 循环重写了。

>>> symbols = '$¢£¥€¤'
>>> codes = [ord(symbol) for symbol in symbols]
>>> codes
[36, 162, 163, 165, 8364, 164]

变量泄露:
python3.x中实例, python2.x中x=67

>>> x = 'ABC'
>>> dummy = [ord(x) for x in x]
>>> x 
'ABC'
>>> dummy 
[65, 66, 67]

用生成器表达式初始化元组和数组:

>>> symbols = '$¢£¥€¤'
>>> tuple(ord(symbol) for symbol in symbols) ➊
(36, 162, 163, 165, 8364, 164)
>>> import array
>>> array.array('I', (ord(symbol) for symbol in symbols)) ➋
array('I', [36, 162, 163, 165, 8364, 164])

➊ 如果生成器表达式是一个函数调用过程中的唯一参数, 那么不需要
额外再用括号把它围起来。
➋ array 的构造方法需要两个参数, 因此括号是必需的。 array 构造
方法的第一个参数指定了数组中数字的存储方式。 2.9.1 节中有更多关
于数组的详细讨论。

元组

  • 交换数值
>>> b, a = a, b
  • 还可以用 * 运算符把一个可迭代对象拆开作为函数的参数:
>>> divmod(20, 8)
(2, 4)
>>> t = (20, 8)
>>> divmod(*t)
(2, 4)
>>> quotient, remainder = divmod(*t)
>>> quotient, remainder
(2, 4)
  • 用*来处理剩下的元素在 Python 中, 函数用 *args 来获取不确定数量的参数算是一种经典写法了。于是 Python 3 里, 这个概念被扩展到了平行赋值中:
>>> a, b, *rest = range(5)
>>> a, b, rest
(0, 1, [2, 3, 4])
  • 嵌套拆包

  • 具名元组

>>> from collections import namedtuple
>>> City = namedtuple('City', 'name country population coordinates') ➊
>>> tokyo = City('Tokyo', 'JP', 36.933, (35.689722, 139.691667)) ➋

collections.deque

相关文章

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • py基础

    5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

  • 01. 数据结构与算法绪论

    一、数据结构 1. 什么是数据结构 2. 数据结构的分类 3. 常用的数据结构 4. 数据结构的应用表现 二、算法...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • C#之数据结构(上)

    数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构有: 线性表、栈、队列、串、数组...

网友评论

      本文标题:数据结构

      本文链接:https://www.haomeiwen.com/subject/ehsqrftx.html