标签:Python基础知识 核心数据类型
本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表.
数字类型
在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等. Python还提供了若干处理数字对象的工具, 如内置数学函数pow, abs等, 标准库math, random等.
看下数字的简单使用.
In [15]: 123 + 234
Out[15]: 357
In [16]: 1.5 * 4
Out[16]: 6.0
In [32]: pow(2, 10)
Out[32]: 1024
In [36]: import math
In [37]: math.pi
Out[37]: 3.141592653589793
In [38]: math.sqrt(44)
Out[38]: 6.6332495807108
In [39]: import random
In [40]: random.random()
Out[40]: 0.7181549555607203
In [41]: random.randint(1, 44)
Out[41]: 36
字符串类型
其为有序的字符的集合, 不能原地修改(不可变序列).
创建字符串常量
单引号
In [42]: 'spa"m'
Out[42]: 'spa"m'
双引号
In [43]: "spa'm"
Out[43]: "spa'm"
三引号
In [44]: '''...spam...'''
Out[44]: '...spam...'
In [45]: """...spam..."""
Out[45]: '...spam...'
字符串的基本操作 - 获取长度, 索引和分片
In [46]: S = 'spam'
In [76]: len(S)
Out[76]: 4
In [47]: S[0]
Out[47]: 's'
In [48]: S[-1]
Out[48]: 'm'
In [49]: S[1:3]
Out[49]: 'pa'
In [50]: S[:]
Out[50]: 'spam'
In [51]: S[:-1]
Out[51]: 'spa
字符串的方法 - 方法是和特定对象相关联在一起的函数, 使用如S.upper(), 从对象角度看, 其为对象的属性, 而该属性是可调用的函数. 那如何查看对象有哪些属性, 及方法的作用呢, 可通过内置的dir, help函数.
In [68]: dir(S)
Out[68]:
['__add__',
'__class__',
'rstrip',
'split',
In [70]: help(S.split)
Help on built-in function split:
split(...)
S.split([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the
delimiter string. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed
from the result.
(END)
列表类型
其为任意类型对象的有序集合, 大小可变, 可嵌套(可变序列).
创建列表
In [72]: L = []
In [73]: L = [1, 2, 3, 4]
In [74]: L = ['abc', ['def', 'ghi']]
列表的基本操作 - 获取长度, 索引, 分片和原处修改
In [77]: L = ['spam', 'Spam', 'SPAM!']
In [78]: len(L)
Out[78]: 3
In [79]: L[1]
Out[79]: 'Spam'
In [80]: L[0:2]
Out[80]: ['spam', 'Spam']
In [81]: L[0:2] = ['eat', 'more']
In [82]: L
Out[82]: ['eat', 'more', 'SPAM!']
列表的方法, 查看思路同上, 此处略.
字典类型
其为通过键来读取的一系列键值对, 也叫关联数组或散列表, 任意类型对象的无序集合, 大小可变, 可嵌套(可变映射).
创建字典
In [84]: D = {}
In [85]: D = {'spam': 2, "eggs": 3}
In [86]: D = dict(name='Bob', age=42)
字典的基本操作 - 获取长度, 访问某项和原处修改
In [92]: D = {'spam': 2, "ham": 1, "eggs": 3}
In [93]: len(D)
Out[93]: 3
In [94]: D['spam']
Out[94]: 2
In [95]: D['spam'] = 4
In [96]: del D['eggs']
In [97]: D
Out[97]: {'ham': 1, 'spam': 4}
字典的方法, 略.
元组类型
其为任意类型对象的有序集合, 大小不可变(不可变序列).
创建元组
In [98]: T = ()
In [99]: T = (4,)
In [100]: T = ('a', 'b', 'c')
In [102]: T = 'a', 'b', 'c'
元组的基本操作 - 获取长度, 索引和分片
In [104]: T = ('a', 'b', 'c', 'd')
In [106]: len(T)
Out[106]: 4
In [107]: T[2]
Out[107]: 'c'
In [108]: T[1:3]
Out[108]: ('b', 'c')
元组的方法, 略.
集合类型
其为唯一的, 不可变对象的无序集合; 一个项在集合中只能出现一次, 不管将它添加多少次, 这些对象支持与数学集合理论相对应的操作.
创建集合
In [110]: set('spam')
Out[110]: {'a', 'm', 'p', 's'}
In [123]: {'a', 'm', 'p', 's', 'a'}
Out[123]: {'a', 'm', 'p', 's'}
集合的基本操作 - 获取长度, 交集, 并集和差集
In [116]: S1 = {1, 2, 3, 4}
In [117]: S2 = {3, 4, 5}
In [118]: len(S1)
Out[118]: 4
In [119]: S1 & S2
Out[119]: {3, 4}
In [122]: S1 | S2
Out[122]: {1, 2, 3, 4, 5}
In [121]: S1 - S2
Out[121]: {1, 2}
集合的方法, 略.
对于文件等其它类型对象, 这里暂且不说明了, 随着学习的深入, 慢慢会接触到.
通过上述总结, 可看到Python中提供了像dir()或len()这样的内置函数, 也有像S.upper()或D.keys()这样的方法调用, 那么两者间有什么区别呢...
对于多种类型的通用型操作, 都是以内置函数或表达式的方式提供的(如len(S), S[0]); 对于特定类型的操作, 都是以方法调用的形式提供的(如S.upper()).
类型对象分类
根据访问方式分类
1. 数字 - 支持加法和乘法
2. 序列(字符串, 列表, 元组) - 支持索引和分片
3. 映射 - 通过键值访问
根据可变性分类
1. 不可变(数字, 字符串, 元组) - 不支持原处修改
2. 可变(列表, 字典, 集合) - 支持原处修改
若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).
标签:Python基础知识 核心数据类型
原文地址:http://blog.51cto.com/coveringindex/2072911