容器数据类型特性总结18

一,容器、类型、对象

1.列表元素和字典自变量可以多行输入,没有任何元素时是不可以的;

例如:

In [75]: l1 = [1,
   ....: 2,
   ....: 3,
   ....: ]

In [76]: print l1
[1, 2, 3]

2.所以对象都有引用计数

分配新名称会增加计数,删除对象引用则会减少计数;

例如:

In [78]: name = "black"

In [79]: import sys
sys        sysconfig  syslog     

In [79]: import sys

In [80]: sys.  
sys.api_version            sys.exit                   sys.last_traceback         sys.ps2
sys.argv                   sys.exitfunc               sys.last_type              sys.ps3
sys.builtin_module_names   sys.flags                  sys.last_value             sys.py3kwarning
sys.byteorder              sys.float_info             sys.long_info              sys.setcheckinterval
sys.call_tracing           sys.float_repr_style       sys.maxint                 sys.setdlopenflags
sys.callstats              sys.getcheckinterval       sys.maxsize                sys.setprofile
sys.copyright              sys.getdefaultencoding     sys.maxunicode             sys.setrecursionlimit
sys.displayhook            sys.getdlopenflags         sys.meta_path              sys.settrace
sys.dont_write_bytecode    sys.getfilesystemencoding  sys.modules                sys.stderr
sys.exc_clear              sys.getprofile             sys.path                   sys.stdin
sys.exc_info               sys.getrecursionlimit      sys.path_hooks             sys.stdout
sys.exc_type               sys.getrefcount            sys.path_importer_cache    sys.subversion
sys.excepthook             sys.getsizeof              sys.platform               sys.version
sys.exec_prefix            sys.gettrace               sys.prefix                 sys.version_info
sys.executable             sys.hexversion             sys.ps1                    sys.warnoptions

In [80]: sys.get
sys.getcheckinterval       sys.getfilesystemencoding  sys.getrefcount            
sys.getdefaultencoding     sys.getprofile             sys.getsizeof              
sys.getdlopenflags         sys.getrecursionlimit      sys.gettrace               

In [80]: sys.getre
sys.getrecursionlimit  sys.getrefcount        

In [80]: sys.getrefcount(name)
Out[80]: 2

In [94]: hello="black"

In [95]: sys.getrefcount(name)
Out[95]: 3

In [96]: del(hello)    //删除对象引用减少计数

In [97]: sys.getrefcount(name)
Out[97]: 2

3.列表和字典都支持两种类型的复制操作

浅复制:创建一个新对象,包含的原来的对象引用,指向的是同一个位置;

深复制:创建一个新对象,递归复制原来包含的所有对象;

深复制可使用copy模块中的deepcopy()实现。

4.Python中的所以对象都是“第一类的”

这意味着使用标识符命名的所有对象都具有相同状态,于是,能够命名所以对象都可以直接当数据进行处理。

例如:

In [6]: a = 4.0

In [7]: b = 3

In [8]: a / b
Out[8]: 1.3333333333333333

In [9]: a // b
Out[9]: 1.0

5.所有序列都支持迭代

序列是索引为非负整数的有序对象的集合;

序列可以修改,支持原处的插入、替换、删除等操作;

字串和元组不支持原处修改,但序列和元组能包含任意的Python对象序列(容器的特性);

6.所有序列都支持的操作

s[i]

s[i:j]

s[i:j:stride]

len(s)

max(s)

min(s)

sum(s)

all(s)

any(s)

s1 + s2 : 连接

s1 * N : 重复

obj in s1 :成员关系判断

obj not in s

7.可变序列的操作,操作本身

s1[index] = value :元素赋值

s1[i:j] = t :切片赋值

del s1[index]

del s1[i:j]

del s1[i:j:stride]

时间: 2024-10-28 15:59:58

容器数据类型特性总结18的相关文章

Spring框架学习[IoC容器高级特性]

1.通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位.读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时,IoC容器对Bean进行的初始化和依赖注入过程,这些是Spring IoC容器的基本功能特性.Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化.FactoryBean产生或者修饰Bean对象的生成.IoC容器初始化Bean过程中使用Bean

stout代码分析之九:c++11容器新特性

stout大量使用了c++11的一些新特性,使用这些特性有利于简化我们的代码,增加代码可读性.以下将对一些容器的新特性做一个总结.主要两方面: 容器的初始化,c++11中再也不用手动insert或者push_back来初始化了 容器的遍历,c++11中再也不用使用冗长的迭代器遍历了 让我们一睹为快吧: #include <map> #include <string> #include <iostream> #include <vector> int main

容器数据类型及其内置方法

元组(Tuples) 作用:能够存储多组数据的容器类型,形式跟List差不多,只不过是小括号不是中括号,并且其中的数据不能被修改 内部原理:当定义了元祖时,内存开辟了新的区域来存放元祖中的数据元素,其中每个不同元素都占据着元祖中的内存空间及地址,如果该数据是不可变类型,一旦确定下来内存地址后,该数据就动弹不得,一生一世都居住在这个内存地址中.如果该数据是可变类型,由于修改其内容并不会变动内存地址,因此可变类型的数据在元组中是可以修改的. 图示    大原则就是不允许修改内存元组中每个数据的内存地

collections ----- 容器数据类型

counter 作用:counter作为一个容器,可以跟踪相同的值增加了多少次 支持3种形式的初始化 #!/usr/bin/env python import collections print collections.Counter(['a','b','c','a','b','c']) print collections.Counter({'a':2,'b':2,'c':2}) print collections.Counter(a=2,b=2,c=2) 执行结果 Counter({'a': 

Python中5种容器数据类型之性质对照表

以下是作者总结的Python五大容器类数据类型的性质对照表,供大家参考记忆. 原文地址:https://www.cnblogs.com/wangliman/p/9697349.html

collections——高性能容器数据类型

由于最近对机器学习算法感兴趣,一直知道python有一个包collections封装了一些比dict,list之类高级点的类,所以抽空研究下,为接下来的工作准备. 主要参考是https://docs.python.org/2/library/collections.html#defaultdict-objects官方的文档,根据不高的英文水平翻译和理解总结出来的,如果有错误欢迎提醒,万一,您有兴趣转载的也请注明是@瓜棚 collections封装的结构主要有5个: ###############

ES6的新特性(18)——async 函数

async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generator 函数,依次读取两个文件. const fs = require('fs'); const readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName,

Python从入门到精通之30天快速学Python视频教程

课程目录python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv python入门教程-3-Python程序文件结构.mkv python入门教程-4-准备Python编程环境.mkv python入门教程-5-Python编程语言基础技术框架.mkv python入门教程-6-Python编程语言基础技术框架.mkv python入门教程-7-Python编程语言基础技术框架之print输出.mkv python入门教程-8

python基础之数据类型(二)

Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tuple有什么意义?因为tuple不可变,所以代码更安全.如果可能,能用tuple代替list就尽量用tuple. 定义:与列表类似,只不过[]改成()特性: 1.可存放多个值2.不可变3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序 基本操作: 索引 切片 循环 长度 包含 lass tu