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

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_b

Python支持四种不同的数字类型:

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字典包含了以下内置函数:
序号	函数及描述
1	cmp(dict1, dict2)比较两个字典元素。
2	len(dict)计算字典元素个数,即键的总数。
3	str(dict)输出字典可打印的字符串表示。
4	type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

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

猜你喜欢

转载自blog.csdn.net/qq_43730719/article/details/88586321