其中有三个数据类型可变,三个数据类型不可变:
数据类型可变和不可变的定义:
可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。
可以用id()函数查看变量id值是否变化的方式判断数据类型是可变还是不可变。
数字数据类型有整数(int)、浮点数(float)、布尔值(bool)、复数(complex)
注意:在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
数值类型实例:
int | float | complex |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3e+18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2E-12 | 4.53e-7j |
Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
字符串是由单引号' '或者双引号" "括起来的的任意文本。
比如创建一个变量并且给它赋一个值
str = 'str'
输出的就是str
list是一种有序的集合,可以随时添加和删除其中的元素。
例如创建一个变量
>>> friend=['Jack','Lisa','Moinca']
可以用len()函数获取friend有多少个元素
>>> len(friend)
>>> 3
可以用索引来访问list中每一个位置的元素,索引从0
开始
>>> friend[0]
>>> 'Jack'
如果要取最后一个元素,可以用-1
做索引,倒数第二个用-2,以此类推
>>> friend[-1]
>>> 'Moinca'
list是一个可变的有序表,所以,可以用append()方法往list中追加元素到末尾
>>> friend.append('write')
>>> friend
>>> ['Jack', 'Lisa', 'Moinca', 'write']
也可以用insert()方法把元素插入到指定的位置,比如索引号为1
的位置
>>> friend.insert(1,'Ellen')
>>> friend
>>> ['Jack', 'Ellen', 'Lisa', 'Moinca', 'write']
要删除list末尾的元素,用pop()
方法
>>> friend.pop()
>>> 'write'
>>> friend
>>> ['Jack', 'Ellen', 'Lisa', 'Moinca']
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> friend[1] = 'Alex'
>>> friend
>>> ['Jack', 'Alex', 'Lisa', 'Moinca']
list里面的元素可以有不同的数据类型
>>> str1 = ['Jack', 25, False]
>>> str1
>>> ['Jack', 25, False]
# python对大小写敏感,这里False写成false会报错
list元素也可以是一个list
>>> str2 = [1, 2, 3, [4, 5], 6]
>>> str2
>>> [1, 2, 3, [4, 5], 6]
要注意这里的str2的元素只有5个,拆分开来就是把一个变量当成一个元素放入另一个变量里面
>>> len(str2)
>>> 5
>>> str3 = [4, 5]
>>> str4 = [1, 2, 3, str3, 6]
>>> str4
>>> [1, 2, 3, [4, 5], 6]
如果一个list中一个元素也没有,就是一个空的list,它的长度为0
>>> str5 = []
>>> len(str5)
>>> 0
有序列表叫元组:tuple。tuple和list类似,可tuple一旦初始化就不能修改
>>> friend=('Jack','Lisa','Moinca')
现在friend所指向的tuple是不能改变的,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用friend[0]
,friend[-1]
,但不能赋值成另外的元素。
>>> friend[0]
>>> 'Jack'
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
不过当tuple的元素是list时,这个list时可以改变的。
>>> tup = ('Jack', 1, [1, 2], True)
>>> tup
>>> ('Jack', 1, [1, 2], True)
>>> tup[2][0] = 'Monica'
>>> tup
>>> ('Jack', 1, ['Monica', 2], True)
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中
>>> d1 = {1 : 'Jack', 2 : 'Monica', 3 : 'Ellen'}
>>> d1
>>> {1: 'Jack', 2: 'Monica', 3: 'Ellen'}
可以用key找出对应的value
>>> d1[1]
>>> 'Jack'
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s = set([1,2,3,3])
>>> s
>>> {1, 2, 3}
通过add(key)
方法可以添加元素到set中,可以重复添加,但不会有效果
>>> s.add(5)
>>> s
>>> {1, 2, 3, 5}
通过remove(key)
方法可以删除元素
>>> s.remove(5)
>>> s
>>> {1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
>>> s1 = set([1, 2, 3, 4])
>>> s2 = set([7, 4, 2, 3])
>>> s1 & s2
>>> {2, 3, 4}
>>> s1 | s2
>>> {1, 2, 3, 4, 7}