目录
Python标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
1. Numbers 数字
1.1 Python 支持四种不同的数值类型:
- 整型(Int)- 通常被称为整型或者整数,不带小数点。
- 长整型(Long) - 无限大小的整数,比整型表示的值大很多,整数最后一位是L或l。
- 浮点型(Float)- 浮点型就是小数,由整数福分和小数部分共同组成。
- 复数(complex numbers) - 由实数和虚数组成,用a + bj,或者complex(a,b)表示。
代码如下:
- print(x) 表示打印该x的数值
- print(type(x))表示打印x值的类型
1.2 Python 数值类型转换:
int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值 hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串
2. String(字符串)
2.1 字符串定义
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。比较特殊是采用三个双引号定义,字符串可以跨行。
2.2 Python访问字符串中的值
- 获取单个字符:采用方括号包围序号,注意序号下标是从0开始
- 获取一段字符串:采用方括号,冒号前为序号开始下标,
- 冒号后结束下标为(序号-1),不包括该结束位的序号;
- 如果没有冒号后下标,表示截取到该字符串结束。
2.3 Python字符串运算符
- 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | >>>a + b 'HelloPython' |
* | 重复输出字符串 | >>>a * 2 'HelloHello' |
[] | 通过索引获取字符串中字符 | >>>a[1] 'e' |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] 'ell' |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | >>>"H" in a True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | >>>"M" not in a True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | >>>print r'\n' \n >>> print R'\n' \n |
% | 格式字符串 |
3. List(列表)
3.1 List列表的定义
序列是Python中最基本的数据结构,序列中每个元素都包含一个表示该值所在位置的序号,这里叫做索引,从0开始,依次类推。Python中有6个序列的内置类型,最常见的是列表和元组。列表由方括号定义,采用逗号作为分隔符,列表内的数据项不要求是相同的类型。
定义如下:
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
3.2 列表操作:索引、切片、增加、删除、修改
- 索引:list1[0],索引从0开始,表示列表取第一个位置的值
- 切片:list1[0:2],索引从0开始,取0和1位置的值,即列表的第一个位置、第二个位置的值
- 增加:append, 在列表后面增加一个新元素
- 删除:del, 指定删除列表中哪个索引的值
- 修改:=,指定新索引,利用等号重新赋值
3.3 列表脚本操作
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
3.4 Python函数&方法:
3.4.1 Python包含以下函数:
序号 | 函数 |
---|---|
1 | cmp(list1, list2) 比较两个列表的元素 |
2 | len(list) 列表元素个数 |
3 | max(list) 返回列表元素最大值 |
4 | min(list) 返回列表元素最小值 |
5 | list(seq) 将元组转换为列表 |
3.4.2 Python包含以下方法:
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |
4. Tuple(元组)
4.1 元组的定义
Python的元组和列表比较类似,不同的地方在于元组的元素是不能修改的。
元组使用小括号,列表使用方括号,都采用逗号隔开。
定义如下:
tuple1 = ('physics', 'chemistry', 1997, 2000)
tuple2 = (1, 2, 3, 4, 5 )
tuple3 = "a", "b", "c", "d"
特殊元组:
- 空元组
- 只有一个元素的元组,采用逗号隔开
tuple4 = ()
tuple5=(20,)
4.2 元组的操作:索引、切片、增加、删除
- 索引:tupel1[0],索引从0开始,表示列表取第一个位置的值
- 切片:tupel1[1:3],索引从0开始,取1和2位置的值,即列表的第一个位置、第二个位置的值,返回的是元组结构
- 增加:+, 元组元素不能修改,但可以进行拼接
- 删除:del, 元组元素不能修改,只能删除该元组,不能单独删除其中的元素
4.3 元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式 | 结果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 计算元素个数 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 复制 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
4.4 元组内置函数
Python元组包含了以下内置函数
序号 | 方法及描述 |
---|---|
1 | cmp(tuple1, tuple2) 比较两个元组元素。 |
2 | len(tuple) 计算元组元素个数。 |
3 | max(tuple) 返回元组中元素最大值。 |
4 | min(tuple) 返回元组中元素最小值。 |
5 | tuple(seq) 将列表转换为元组。 |
5. Dictionary(字典)
5.1 字典的定义
字典是另一种可变的模型,可以存储任意类型的对象。字典是以键值对形式出现的,每个键值对包括一个键值key,以及对应的值value,key=>value对中用冒号分割,不同键值对间用逗号分割,字典本身采用{}定义。
格式如下:
dict = {key1:value1, key2:value2, key3:value3, ....}
dict一般通过键值key来获取对应值value,所以字典里键key值要保证是唯一的, 键的类型和值的类型不要求相同。
5.2 字典的操作:取值,增加,删除,修改
- 取值:dict1['Alice'],给出键key的值,查询对应的value值
- 增加:dict1['key'] = value,添加一个新的键值对,键为key,值为value
- 修改:dict1['key'] = 新value,新的value替换原来的值
- 删除:del
- 可以删除单个键值对key=>value;
- 也可以清空字典所有键值对;
- 也可删除该字典
5.3 字典内置函数&方法
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() 返回并删除字典中的最后一对键和值。 |