精华内容
下载资源
问答
  • 在‘可变序列(MutableSequence)--不可变序列(Sequence)’的分类方式中,《流畅的python》给出了它们抽象基类(Abstract Base Class)之间的关系,它是内置序列类型的‘协议’,但python内置序列类型并不...

    python用C标准库实现了丰富的序列类型,并且有着基于存放类型及能否被修改这两种标准的分类,即容器序列--扁平序列与可变序列--不可变序列。


    在‘可变序列(MutableSequence)--不可变序列(Sequence)’的分类方式中,《流畅的python》给出了它们抽象基类(Abstract Base Class)之间的关系,它是内置序列类型的‘协议’,但python的内置序列类型并不直接从Sequence与MutableSequence继承而来,通过熟悉抽象基类中的特殊方法来熟悉序列类型共有的特性,进而学习、掌握其它序列类型。(图片整理自《流畅的python》箭头由子类指向超类【父类】)

    展开全文
  • Python 内置序列类型、列表推导和生成器原文地址:Python 内置序列类型、列表推导和生成器

    Python 内置序列类型、列表推导和生成器

    原文地址:Python 内置序列类型、列表推导和生成器

    展开全文
  • Python内置序列类型

    2020-09-27 22:37:57
    Python内置序列类型 容器序列 list、tuple、collections.deque 能存放不同类型的数据 扁平序列 str、bytes、 bytesarray、 memoryview(内存视图)和array.array,这种序列只能容纳一种类型。 容器序列存放的是它们...

    Python的内置序列类型

    容器序列

    list、tuple、collections.deque 能存放不同类型的数据

    扁平序列

    str、bytes、 bytesarray、 memoryview(内存视图)和array.array,这种序列只能容纳一种类型。

    容器序列存放的是它们所包含的任意类型的对象的引用,而扁平序列里存放的是值而不是引用。换句话说,扁平序列其实是一段连续的内存空间。由此可见扁平序列其实更加紧凑,但是它里面只能存放诸如字符、字节和数值这种基础类型。

    memoryview
    用途:(处理大型数据)
    函数返回给定参数的内存查看对象(memoryview)。
    所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问
    语法: memoryview(object)
    1)类似C语言指针,通过memory访问内部数据;无内存拷贝 ;
    2)是泛化和去数学化的Numpy数组,不复制内容前提下在数据结构之间共享内存;
       数据结构可是任何形式,如PIL图片,SQLite数据库,Numpy的数组等
    3)将内存视图转为新格式或形状(底层对象可写支持一维切片;禁调大小)
    3.1)零维内存视图可以使用空元组索引。
    3.2)一维记忆体视图可以用一个整数或一个整数元组索引。
    3.3)多维内存视图可以用精确ndim整数的元组索引,其中ndim是维数。
    
    array.array
    计算机为数组分配一段连续的内存,从而支持对数组随机访问;
    由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加。
    数组的基本地址就是数组的第一项的机器地址。一个项的偏移地址就等于它的索引乘以数组的一个项所需要的内存单元数目的一个常量表示(在python中,这个值总是1)
    

    序列类型还能按照能否被修改分类

    可变序列

    list,bytearray, array.array, collections.deque 和 memoryview。

    不可变序列

    tuple、str 和 bytes。

    set, dict 无序所以不算序列
    tuple某些情况下是可变的。比如嵌套dict或者list

    可变数据类型是允许同一对象的内容,即值可以变化,但是地址是不会变化的。但是需要注意一点,对可变数据类型的操作不能是直接进行新的赋值操作,比如说a = [1, 2, 3, 4, 5, 6, 7],这样的操作就不是改变值了,而是新建了一个新的对象,这里的可变只是对于类似于append、+=等这种操作。

    python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

    展开全文
  • Python内置数据类型

    千次阅读 2018-03-28 15:14:33
    Python内置数据类型python中数据类型并不需要显示的定义,它会根据初始化赋值的情况来分析其类型,并在内部对其进行跟踪python内置数据类型Booleans:[布尔型]或为True或为FalseNumbers : 可以是Intgers[整数]、...
    Python内置数据类型




    python中数据类型并不需要显示的定义,它会根据初始化赋值的情况来分析其类型,并在内部对其进行跟踪


    python内置数据类型


    Booleans:[布尔型]或为True或为False


    Numbers : 可以是Intgers[整数]、Floats[浮点数]、Fractions[分数]甚至是Complex Number[复数]。


    Strings:[字符串型] 是Unicode字符序列


    Byte:[字节]和Byte Array[字节数组]


    Lists[列表]是值得有序序列


    Tuples[元组]是有序而不可变的值序列


    Sets[集合]是装满无序值得包裹


    Dictionaries[字典]是键值对的无序包裹




    math模块下的函数:
    math.pi :代表一个π的常量,表示圆周率
    三角函数
    math.sin() 
    math.cos()
    math.tan()




    列表、元组、集合、字典


    列表是Python的助理数据类型。


    列表常用函数:


    格式:
    a_list = ['a', 'b', 'new', 'mpilgrim']


    append() 在列表末尾最佳元素,可以是任何数据类型,但是都是以一个元素添加到列表
    extend() 方法值接受一个参数,而该参数总是一个列表
    insert() 接受两个参数,第一个参数为列表索引,第二个参数为列表插入列表的值


    count()方法返回列表中某个特定值出现的次数


    'a' in a_list: in 运算符用来判断某个值是否出现在列表中,in运算符总是返回True或False;


    index()方法将查找某个值在列表中第一次出现。并返回出现位置的索引值。如果没有值,index()方法将会引发一个例外


    del a_list[1] 可使用del语句从列表中删除某个特定元素


    删除索引1之后再访问索引1 将不会导致错误。被删除元素后的所有元素将移动他们的位置以'填补'被删除元素所产生的'缝隙'


    a_list.remove('列表里的值'):还可以通过remove()方法从列表中删除某个元素。remove()方法接受一个value参数,并删除列表中改值得第一次出现。同样,被删除元素之后的所有元素将会将索引位置下移,以填补缝隙


    a_list.pop():如果不带参数调用,pop()列表方法将删除列表中最后的元素,并返回所删除的值。 可以从列表中pop[弹出]任何元素。只需要给pop()方法一个位置索引值。他将删除该元素,将其后所有元素移位以'填补'缝隙,
    然后返回它删除的值。
    对空列表调用pop()将会引发一个例外




    元组:
    元组是不可变的列表。一旦创建之后,没有任何途径可以改变列表元素,除非把元组转换为列表


    格式:
    a_tuple = ("a", "b", "mpilgrim", "z", "example")


    元组的定义和李彪相同, 除了整个元素的集合都用圆括号,而不是方括号闭合
    和列表一样,元组的元素都有确定的顺序。元组的索引页是以零为基点的,和列表一样,因此非空元组的第一个元素总是a_tuple[0].
    负的索引从元组的尾部开始计算,这和列表也是一样的。
    元组也可以进行切片操作。对列表切片可以得到新的列表;对元组切片可以得到新的元组。


    元组和列表的主要区别是元组不能进行修改。用技术术语来说,元组是不可变的。从实践的角度来说,没有可用于修改元组的方法。


    元组的优势:
    元组的速度比列表快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么请使用元组替代列表。
    对不需要改变的数据进行'写保护'将使得代码更安全。使用元组替代列表就像是有一条隐含的assert语句显示该数据是常量特别的想法必须重写。
    一些元组可用做字典键(特别是包含字符串,数值和其它元组这样的不可变数据的元组)。列表永远不能当做字典键使用,应为列表不是不可变的。


    集合:
    集合set是装有独特值得无序'袋子'。一个简单的集合可以包含任何数据类型的值。如果有两个结合,则可以执行像联合、交集以及集合求差等标准集合运算


    格式:
    a_set = {1}


    创建一个集合,只要将值放置于花括号之间({})
    实际上,集合以类的形式实现,但目前还无须考虑这一点
    要创建多只集合,请将值用逗号分开,并用花括号将所有值包裹起来。




    要从列表创建集合,可使用set()函数。(懂得如果实现集合的学究可能指出这实际上并不是调用某个函数,而是对某个类进行实例化。我保证在本书稍后的地方将会学到其中的区别。目前而言,仅需知道set()行为与函数类似
    以及它返回一个集合


    正如我之前提到的,简单的集合可以包括任何数据类型的值。而且,如我之前所提到的,结合是无序的。该集合并不记得用于创建它的列表中元素的最初顺序。如果向结合中添加元素,他也不会记得添加的顺序


    初始的列表并不会发生变化




    修改集合:
    有两种方法可向现有集合中添加值:add()方法和update()方法


    add()方法接受单个可以是任何数据类型的参数,并将该值添加到集合之中
    集合是装唯一值得袋子,如果试图添加一个结合中已有的值,将不会发生任何事情。


    update()方法仅接受一个集合作为参数,并将其所有成员添加到初始列表中。其行为方式就像是对参数集合中的每个成员调用add方法
    由于集合不能包含重复的值,因此重复的值将会被忽略
    实际上,可以带任何数量的参数调用update()方法。如果调用时传递了两个结合,update()将会被每个集合中的每个成员添加到初始的集合当中(丢弃重复值)
    update()方法还可以接收一些其它的数据类型的对象作为参数,包括列表。如果调用时传入列表,update()将会把列表中所有的元素添加到初始结合中。


    从集合中删除元素


    有三种方法可以用了从集合中删除某个值。discard()、remove()、pop()


    discard()接受一个单值作为参数,并从集合中删除改值
    如果针对一个集合不存在的值调用discard()方法,它不进行任何操作。不产生错误;只是一条命令
    remove()方法也接受一个单值作为参数,也从集合中将其删除
    区别在于:如果该值不在集合中,remove()方法引发一个keyError例外


    pop()方法从集合中删除某个值,并返回该值。然而,由于集合是无序的,并没有最后一个值得概念,因此无法控制删除的是哪一个值。他基本上是随机的。
    clear()方法删除集合中所有的值,留下一个空集合。他等价于a_set=set(),改语句创建一个新的空结合,并用之覆盖a_set变量的之前的值。
    试图从空结合中弹出某值将会引发KeyError例外


    要检测某个值是否是集合的成员,可使用in运算符。其工作原理和列表一样
    union()方法返回一个新集合,其中装着在两个集合中出现的元素。
    intersection()方法返回一个新集合,其中装着同时在两个集合中出现的所有元素
    differenct()方法返回的新集合中,装着所有在a_set出现但未在b_set中的元素
    symmetric_difference()方法返回一个新集合,其中装着所有只在其中一个集合中出现的元素 
    展开全文
  • python序列类型

    2018-05-27 16:47:41
    Python 标准库用 C 实现了丰富的序列类型,列举如下。 按照存放的数据类型的不同来分类: 容器序列 list、tuple和collections.deque,这些序列能存放不同类型的数据。 扁平序列 str、bytes、bytearray、...
  • Python中共有68种内置序列(有些内置函数也能返回一些特殊序列,可以对它进行一些通用的序列操作),其中有三种比较常见:列表,元组,字符串 Python中大部分序列都可以进行通用操作,包括索引,切片,相同类型序列...
  • Python序列类型

    千次阅读 2017-12-25 11:58:17
    Python内置了强大的数据结构,除了基本的数值类型和布尔值外,Python还有各种集合类型,包含了:序列(sequence)、映射(mapping)和集合(set)。序列类型可分为两大类: 容器序列 list、tuple、collections.deque等...
  • Python中6个序列内置类型之概述(一)1、Python中6个序列内置类型分别是什么?2、 列表和元组的异同有哪些?相同点:异同点:A、定义不同B、是否可修改C、转换方式D、是否含内置方法 1、Python中6个序列的...
  • 所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。 为了更形象的认识序列,可以将它...在Python 中,序列类型包括字符串、列表、元组、集...
  • Python 内置类型简述

    千次阅读 2017-04-26 10:31:12
    Python 内置类型这里学习内容...目录Python 内置类型 目录 for lelp 核心数据类型 数字 序列的操作 索引 不可变性 列表 特定的操作方法 边界检查 嵌套 列表解析 字典 创建方法常量 创建空字典然后再逐个填充 索引 嵌套
  • 每个对象都有类型python中最基本的内置数据类型: 整型 整数 234 浮点型 小数 3.14 布尔型 表示真假 仅包含 True False 字符串型 由字符串组成的序列 数字 python中支持整数和浮点数,我们可以对数字做...
  • Python内置数据类型之list

    千次阅读 2016-02-16 21:43:46
    list,列表,是Python内置的一种数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。一个简单的方法识别list,即用“[]”括起来的就是list。 下面介绍list的一些操作。 1.创建list list是数学意义上的...
  • (链表容器) 是一个长度可变的、由 T 类型元素组成的序列,它以双向链表的形式组织元素 python里面列表list 实际是一个序列 因此上一节中序列的所有相关操作都适用于列表 如“+拼接,*重复,len()求长度,in判断...
  • python 内置数据类型

    千次阅读 2010-03-05 15:46:00
    ▾ hide table of contents 0. ↑ 显示完整目录 1. 深入# 2. 布尔类型# 3. 数值类型# 1. 将整数强制转换为浮点数及反向转换# 2. 常见数值运算# 3. 分数# 4. 三角函数# 5. 布尔上下文环境中的数值# 4.
  • Python内置数据类型之Tuple

    千次阅读 2016-03-02 10:34:08
    8、Python内置函数 其中max、min、cmp、len等函数的使用和list相同,元组还有一个tuple函数,用来将序列转换为元组: tuple(seq) 9、其他 任意无符号的对象,以逗号隔开,默认为元组,如下实例: t=1...
  • Python内置函数

    千次阅读 多人点赞 2019-05-10 15:10:36
    Python内置函数Python abs()函数Python all() 函数Python any() 函数Python basestring() 函数Python bin() 函数Python bool() 函数Python bytearray() 函数Python callable() 函数Python chr() 函数Python ...
  • Python_序列对象内置方法详解_String

    千次阅读 2015-11-01 19:40:55
    序列类型 序列的操作方法 索引调用 切片运算符 扩展切片运算符 序列元素的反转 连接操作符 重复运算符 成员关系符 序列内置方法 len 获取序列对象的长度 zip 混合两个序列对象 enumerate 枚举出序列对象的元素 ...
  • 1、Python中6个序列内置类型分别是什么? Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、...
  • Python内置函数作用及解析

    万次阅读 多人点赞 2018-06-30 15:44:45
    Python内置的函数及其用法。为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个) 变量操作(2个) 交互操作(2个) 文件操作(1个) ...
  • python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例  python内置映射类型字典(dict)是除列表(list)之外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。...
  • Python中6个序列内置类型分别是什么? Python3包含6中内建的序列:即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。 序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、...
  • 1、Python中6个序列内置类型分别是什么? 2、列表和元组的异同有哪些? 1、Python中6个序列内置类型分别是什么? Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange...
  • 列表是python内置序列之一,不可哈希,可修改。下面是本人复习《Python基础教程》(Magnus Lie Hetland)第二章的总结笔记。     方法 运用例子 注意事项 增 在末尾增加一个值 append x....
  • Python新增元素中各个方法的区别 八浅:元组(tuple)的介绍 元组的创建方式 九浅:元组和列表的区别 小结 一深:列表和元组的底层实现 总结 一浅: 列表(list)的介绍 列表作为Python序列类型中的一种,其也是用于...
  • python 序列可用的内建函数
  • Python3序列

    2020-06-28 22:46:26
    Python有6个序列内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 Python序列函数&方法...
  • 1、Python中6个序列内置类型分别是什么? Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,521
精华内容 22,208
关键字:

python内置的序列类型包括

python 订阅