python对象类型_python对象类型基础了解

在python中,数据以对象的形式出现,对象无非是内存中的一部分,包含数值和相关操作的集合。

python中没有char类型,单个字符同样是字符串类型。

序列 序列中的元素包含了一个从左到右的顺序。从严格意义上来说,字符串是单个字符的字符串的序列。其他类型的序列还包括列表和元组。

序列的操作

len()取长

索引,以0开始

反向索引

S = "Spam"

S[-1] = "m"

S[-1] = "a"

切片(slice)操作:X[I:J]取出X中从偏移量I到但不包括偏移量为J的内容,结果返回一个新的对象。

S[1:]

'pam'

S[0:3]

'Spa'

S[:3]

'Spa'

S[:-1]

'Spa'

S[:]

'Spam'

不可变性

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

类型特定的方法

str.find() 返回子字符串的索引,没有则返回-1。

str.replace() 对全局进行搜索和替换。

str.split()

str.upper()

str.lower()

str.strip()

尽管序列操作是通用的,但方法不通用(虽然有些类型共享某些方法名,即方法名相同,但是字符串的方法只能用于字符串)

字符串格式化操作

'%s is %s'%('i','human')

'{0} is {1}'.format("i", "human")

转义字符?原生字符(raw)

列表

特定操作

append() 末尾添加

list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

sort() 排序

reverse() 反向

列表解析

列表解析表达式,提供了一种处理像矩阵这样结构的强大工具。例如我们需要充列举的矩阵中提取出第二列,因为矩阵是嵌套存储的,所以通过简单的索引可获取行,通过列表解析也可以获得列。

m = [[1,2,3],[4,5,6],[7,8,9]]

row0 = [row[0] for row in m]

row0

#[1,4,7]

还可以更复杂:

row2 = [row[1] for row in m if row[1] % 2 == 0]

row2的结果是[2,8]。先取出列表结果,再过滤奇数。

row3 = [row[1] +1 for row in m]

row3的结果是[3,6,9]。同样先取出列表结果,再每个元素都加1。

列表解析来源于集合的概念。还可以创建生成器、集合、字典。

字典

python中的字典是完全不同的东西:它们不是序列,而是一种映射(mapping)。映射是一个其他对象的集合,但是它们是通过键而不是相对位置来存储的。没有可靠的从左到右的顺序。简单地将键映射到值。

字典使用大括号。

键的排序:for循环

作为映射,字典仅支持通过键获取元素。因为字典不是序列,所以如果我们建立一个字典,并打印出来,它的键也许会与我们输入时的顺序不同。如果我们需要强调某种顺序的时候,一个常用的解决方法是通过字典的keys方法收集一个键的列表,使用列表的sort()方法进行排序,然后for循环。

sorted()方法对字典的key进行排序。

迭代和优化

迭代协议?从左到右地扫描一个对象的每个python工具都使用迭代协议。字典是可迭代的对象,可以用一个next返回后续的键。

迭代(iterate) - 按顺序访问线性结构中的每一项

遍历(traversal) - 按规则访问非线性结构中的每一项

squares = [x ** 2 for x in [1,2,3,4,5]]

squares

[1,4,9,16,25]

等同于:

squares = []

for x in [1,2,3,4,5]:

squares.append(x ** 2)

squares

[1,4,9,16,25]

元组(tuple)

小括号,不可变,属于序列,支持任意类型,任意嵌套和常见的序列操作。

拥有两个专有的可调用方法:

T.index():查找元素的第一个索引值

T.count():查找元素在tuple中出现的次数

tuple可以转换成list,list也可以转换成tuple

文件

文件对象是python代码对电脑上外部文件的主要接口。

f = open("E:\Python-text-project\data.txt",'w')

f.write("hello world")

f.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值