您的位置:首页 > 编程语言 > Python开发

Python对象和容器(各种数据类型)

2018-07-04 19:30 246 查看

python 对象类型

​ 程序在启动以后,是以进程方式存在。进程中数据(变量,函数,类,容器等)保存在内存中。​ python中对象是什么? ​ 由于python是弱类型语言,python中一切皆对象,对象包含:变量,函数,类,容器 对象存储在内存中的值。这就意味着在创建对象时会在内存中开辟一个内存空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。 变量赋值 Python 中的变量赋值不需要类型声明。 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如# -*- coding: utf-8 -*- __author__ = 'zhougy' __date__ = '202018/6/12 下午11:55' ​ counter = 1000 # 赋值整型变量 miles = 100.04 # 浮点型 name = "baidu" # 字符串 ​ print(counter) print(miles) print(name)多个变量赋值Python允许你同时为多个变量赋值。例如:a = b = c = 1以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。(通过id判断)您也可以为多个对象指定多个变量。例如:a, b, c = 1, 2, "sina"以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "sina" 分配给变量 c。标准的数据类型在内存中存储的数据可以有多种类型。例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。Python 定义了一些标准类型,用于存储各种类型的数据。对象按照类别分类:(1)Python有基本数据类型:

  • Numbers(数字) — 基本数据类型, int,short, long, float

  • String(字符串)— 基本数据类型

  • bool (True or False)

  • None

(2)python有复合数据类型:​ 类(class)​ 函数 ​ enum (3)python的容器:

  • List(列表) —— 双向链表 有序,可变, 操作: 插入(append,insert, extend 任何位置), 删除(remove, pop,任何位置), 查找(L[index], 任何位置), 遍历(列表,下标索引)1 —》 2 —》 3 —》 4《— 《— 《---

  • Tuple(元组) —— 有序,不可变, 查找(T.index(value, start, end)), 遍历(列表,下标索引)

  • Dictionary(字典)— — key-value键值对。

​ 创建(1. mdict={'key':value}, 2.mdict=dict(key=value)) ​ 插入:mdict[key] = value 获取:key获取value数据(get, pop) ​ 查找:mdict[key], mdict.get(key), 遍历(安装mdict.keys()遍历key,由mdict[key]获取value)

  • Set (集合)— 存储一维无序对象

​ 创建方式:set([1, 2, 3]) ​ 插入:add, 删除:remove, pop ​ 判断元素是否在集合 in ​ 作用:(1)去重 (2)运算:交集(intersection),并集(union)

  • Queue (队列)— 存储先进先出的对象

​ 创建方式:mq = queue.Queue(maxsize=0) ​ 插入:put, put_nowait, 取数据:get, get_nowait

  • collections​ Counter, defaultdict, deque, namedtuple, OrderedDict​​

python数字数字数据类型用于存储数值。他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number对象就会被创建:var1 = 1var2 = 10您也可以使用del语句删除一些对象的引用。您可以通过使用del语句删除单个或多个对象的引用。例如:del vardel var_a, var_bPython支持四种不同的数字类型:

  • int(有符号整型) 分32bit和64bit, 所占用的内存字节数不同

  • long(长整型[也可以代表八进制和十六进制])

  • float(浮点型)

  • complex(复数) (复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。)

Python字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 :s="a1a2···an" (n>=0)它是编程语言中表示文本的数据类型。python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1

  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。比如: s = 'ilovepython' print(s[1:5])s[1:5]的结果是love。当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。 str = 'Hello World!' ​ print(str) # 输出完整字符串 print(str[0]) # 输出字符串中的第一个字符 print(str[2:5]) # 输出字符串中第三个至第五个之间的字符串 print(str[2:]) # 输出从第三个字符开始的字符串 print(str * 2) # 输出字符串两次 print(str + "TEST") # 输出连接的字符串以上实例输出结果: Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST

python列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。序列都可以进行的操作包括索引,切片,加,乘,检查成员。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: list1 = ['physics', 'chemistry', 1997, 2000] ​ list2 = [1, 2, 3, 4, 5 ] ​ list3 = ["a", "b", "c", "d"]与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。(1)访问列表中的值:List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。列表用 [ ] 标识,是 python 最通用的复合数据类型。列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。加号 + 是列表连接运算符,星号 * 是重复操作。如下实例: list = ['runoob', 786, 2.23, 'john', 70.2] tinylist = [123, 'john'] ​ print(list) # 输出完整列表 print(list[0]) # 输出列表的第一个元素 print(list[1:3]) # 输出第二个至第三个元素 print(list[2:]) # 输出从第三个开始至列表末尾的所有元素 print(tinylist * 2) # 输出列表两次 print(list + tinylist) # 打印组合的列表以上实例输出结果: ['runoob', 786, 2.23, 'john', 70.2] runoob [786, 2.23] [2.23, 'john', 70.2] [123, 'john', 123, 'john'] ['runoob', 786, 2.23, 'john', 70.2, 123, 'john'](2)更新列表你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示: list = []         ## 空列表 list.append('Google')   ## 使用 append() 添加元素 list.append('Runoob') print(list) (3) 删除列表元素可以使用 del 语句来删除列表的元素,如下实例: list1 = ['physics', 'chemistry', 1997, 2000] ​ print(list1) del list1[2] print("After deleting value at index 2 : ") print(list1) python元组元组是另一个数据类型,类似于List(列表)。元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。 tuple = ('runoob', 786, 2.23, 'john', 70.2) tinytuple = (123, 'john') ​ print(tuple) # 输出完整元组 print(tuple[0]) # 输出元组的第一个元素 print(tuple[1:3]) # 输出第二个至第三个的元素 print(tuple[2:]) # 输出从第三个开始至列表末尾的所有元素 print(tinytuple * 2) # 输出元组两次 print(tuple + tinytuple) # 打印组合的元组以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的: tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] list[2] = 1000     # 列表中是合法应用 tuple[2] = 1000   # 元组中是非法应用 print(list)Python字典字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{ }"标识。字典由索引(key)和它对应的值value组成。 dict = {} dict['one'] = "This is one" dict[2] = "This is two" ​ tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'} ​ print(dict['one']) # 输出键为'one' 的值 print(dict[2]) # 输出键为 2 的值 print(tinydict) # 输出完整的字典 print(tinydict.keys()) # 输出所有键 print(tinydict.values()) # 输出所有值字典内置函数&方法Python字典包含了以下内置函数:

序号函数及描述
1cmp(dict1, dict2)比较两个字典元素。
2len(dict)计算字典元素个数,即键的总数。
3str(dict)输出字典可打印的字符串表示。
4type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
3[dict.fromkeys(seq, val])创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值
5dict.has_key(key)如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回可遍历的(键, 值) 元组数组
7dict.keys()以列表返回一个字典所有的键
8dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)把字典dict2的键/值对更新到dict里
10dict.values()以列表返回字典中的所有值
11[pop(key,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()随机返回并删除字典中的一对键和值。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: