Python 内置类型简述

Python 内置类型简述

这里学习内容来自于 《Python学习手册》https://learnpythonthehardway.org/book/

目前只更新到 字典 ,会不断补充后续内容。

for lelp

之所以把这一项放在开头,是提醒自己多查看python手册
,或是”help(struc.method)”

核心数据类型

内置对象类型

  • 数字:1234, 3.1415, 3+4j, Decimal, Fraction
  • 字符串:'spam', "guido's", b'a\xolc'
  • 列表:[1,[2,'three'],4]
  • 字典:{'food':'spam','taste':'yum'}
  • 元组:(1,'spam',4,'U')
  • 文件:myfile=open('eggs','r')
  • 集合:set('abc'),{'a','b','c'}
  • 其它类型:None, bool
  • 编程单元类型:函数、模块、类

数字

类似于其他编程语言,Python也包括常见的:整数浮点数其它(有虚部的复数、固定精度的十进制数、有分子和分母的有理分数)集合

除了表达式,还有一些常用的 数学模块,里面包括高级的数学工具、如函数。random 可生成随机数也可作随机选择器

>>>import math
>>>math.pi
>>>nath.sqrt(9)

>>>import random
>>>random.random()
>>>random.choice([1,2,3,4])

序列

含义

一个“序列”是一个对位置进行排序的对象的集合。包括 字符串、列表、元组

操作

它们共同拥有一般的序列操作,包括 索引、分片、合并,但是也有其各自特定的操作方法。

索引

以”China”为例:

s = "China"
len(s)      

索引是按照 偏移量 进行的,自然是从0开始的,比如:

s[0]
'C'
分片
s[1:4]
'hin'   
>>> s[:]
'China'

也可以通过 负偏移量 进行索引,例如-1则是指最后一项,比如:

>>> s[-1]
'a'
>>> s[:-1]
'Chin'
合并

“+” 用以合并

>>> s + ", I love you!"
'China, I love you!'

不可变性

表示一旦创建后,不能随意更改。比如,不能通过对其某一位置赋值而改变该字符串,但是可以以原来的变量名创建一个新的字符串,因为会覆盖掉原来的对象。

不可变:数字、字符串、元组
可变: 列表、字典

列表

特定的操作,方法

methods

边界检查

若是给超出列表边界外的元素赋值,会出错。

嵌套

列表可支持 任意嵌套。一个直接应用就是实现 矩阵,或是 多维数组

列表解析

列表解析源自集合的概念。列表解析是写在 方括号 中的,且由使用了同一个变量名的表达式和 循环结构 组成。它是一种通过 对序列中的每一项运行一个表达式来创建一个新列表的方法,每次一个,从左至右

解析可以用来创建 列表、集合和字典

字典

不是序列,而是一种 映射(Mapping),映射,是通过 而不是相对位置来存储的。没有从左至右的顺序,只是将 映射到值。具有 可变性

创建方法

写在 大括号{ } 内,包含一系列的 “键:值” 对。

常量
>>> d = {'food':'pizza', 'quantity':'2', 'flavor':'bacon'}
创建空字典,然后再逐个填充
>>> d = {}  
>>> d['food'] = 'pizza'  
>>> d['quantity'] = '2'  
>>> d['flavor'] = 'bacon'  

索引

索引 操作,与序列的索引语法相同,只是语句中方括号内是“键”,而不再是相对位置。字典,侧重的是内容上的 关联性

字典也可以用来进行搜索,通过键索引一个字典是python中编写搜索的最快方法。

嵌套

例如:

>>> info = {'name':{'first': 'Lin', 'last': 'Liu'},  
            'age': 23,  
            'interests':['photography', 'reading']}  
>>> info['name']['first']  
'Liu'  
>>> info['interests'][-1]  
'reading'  
>>> info['interests'].append('travel')  
>>> info  
{'name':{'first': 'Lin', 'last': 'Liu'}, 'age': 23, 'interests':['photography', 'reading', 'travel']}   

可以看出python数据类型的灵活性。

for循环,键排序

前面提到,字典不像序列一样,它并没有从左到右的顺序。但是有时又需要强调某种顺序,该怎么办?
在较新版本的Python中,可以直接使用sorted()函数完成:
sorted()

元组

元组是序列,但是类似字符串 具有 不可变性,不可以更改,不可以增长或缩短。
写在 圆括号() 内,支持任意类型、任意嵌套以及常见的序列操作:

>>> num = (1, 2, 3, 4)
>>> len(num)              # length
4
>>> num + (5, 6)          # 合并
(1, 2, 3, 4, 5, 6)
>>> num[0]
1

元组还有 专用的调用方法

>>> num.index(4)         # 返回4所在位置
3
>>> num.count(4)         # 返回4出现的次数
1

那么问题来了:
既然它不能随意改变,都不灵活,我们为什么要用元组呢?
正是因为它的不可变性,合适的情况下,劣势便是优势,所以说要辩证地看待问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值