Python——标准数据类型
Python有六个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
Numbers(数字)
Python3 支持 int、float、bool、complex(复数)。
- int(有符号整型)
- bool(布尔型)
- float(浮点型)
- complex(复数)
注:在 Python3.X 版本中 long 类型被移除,使用 int 替代。
String(字符串)
python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度减1
- 从右到左索引默认-1开始的,最大范围是字符串开头
- 可以使用 [头下标:尾下标] 来截取相应的字符串;子字符串包含头下标的字符,但不包含尾下标的字符
- 使用 [头下标:尾下标:步长] 来间隔截取相应的字符串;步长n:即间隔(n-1)个字符取一次
- 加号(+)是字符串连接运算符,星号(*)是重复操作
例如下图:
代码块:
String = "RUNOOB"
print (String)
print (String[0])
print (String[-1])
print (String[0:4])
print (String[-5:-3])
print (String[2:])
print (String[0: :2])#从R到B,每间隔一个取一次字符
print (String + "ABC")
print (String * 3)
运行结果:
RUNOOB
R
B
RUNO
UN
NOOB
RNO
RUNOOBABC
RUNOOBRUNOOBRUNOOB
Python 使用反斜杠()转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>
List(列表)
- 列表可以完成大多数集合类的数据结构实现。
- 支持字符,数字,字符串甚至可以包含列表(即嵌套)。
- 列表用 [ ] 标识,是 python 最通用的复合数据类型。
- 列表中值的切割也可,用法和字符串一样。
代码快:
list_test = [1, "abc", 's', 56, [1, 2, 3], 333]
print (list_test)
print (list_test[1])
print (list_test[0:5])
print (list_test[4:])
print (list_test[::2])
运行结果:
[1, 'abc', 's', 56, [1, 2, 3], 333]
abc
[1, 'abc', 's', 56, [1, 2, 3]]
[[1, 2, 3], 333]
[1, 's', [1, 2, 3]]
Tuple(元组)
- 元组是另一个数据类型,类似于 List(列表)。
- 元组用 () 标识。内部元素用逗号隔开。
- 元组不能二次赋值,相当于只读列表。但是整体对元组重新赋值是允许的
- 元组的使用和列表相似。
代码快:
tuple = ( 'abcdef', 786 , 2.23, 'dddd', 70.2 )
tinytuple = (123, 'dddd')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第四个(不包含)的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
运行结果:
('abcdef', 786, 2.23, 'dddd', 70.2)
runoob
(786, 2.23)
(2.23, 'dddd', 70.2)
(123, 'dddd', 123, 'dddd')
('abcdef', 786, 2.23, 'dddd', 70.2, 123, 'dddd')
元组不能二次赋值,相当于只读列表。但是整体对元组重新赋值是允许的。例子如下:
一:整体对对象重新赋值
tuple = ( 'abcdef', 786 , 2.23, 'dddd', 70.2 )
tuple = ( 'ABCDEF', 123, 22.2, 'DDDD', 8888)
print (tuple)
#结果
( 'ABCDEF', 123, 22.2, 'DDDD', 8888)
tuple = ( 'abcdef', 786 , 2.23, 'dddd', 70.2 )
tuple[2]= 456 #修改元组对象的某个元素
print (tuple)
#结果报错
TypeError: 'tuple' object does not support item assignment
Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
#!/usr/bin/python3
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Rose' in student :
print('Rose 在集合中')
else :
print('Rose 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
运行结果
{'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
Rose 在集合中
{'b', 'a', 'c', 'r', 'd'}
{'b', 'd', 'r'}
{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
{'a', 'c'}
{'l', 'r', 'z', 'm', 'b', 'd'}
Dictionary(字典)
-
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。
-
列表是有序的对象集合,字典是无序的对象集合。
-
字典当中的元素是通过键来存取的,而不是通过偏移存取。
-
字典用"{ }"标识。
-
字典由索引(key)和它对应的值value组成。
-
字典是一种映射类型,它的元素是键值对。
-
字典的关键字必须为不可变类型,且不能重复。
-
创建空字典使用 { }。
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
print (tinydict['name'])
{'name': 'john', 'code': 6734, 'dept': 'sales'}
dict_keys(['name', 'code', 'dept'])
dict_values(['john', 6734, 'sales'])
john