python标准数据类型有Number(数字),String(字符串 ,Boolean(布尔值),List(列表),Tuple(元组),Set(集合),Dictionary(字典) Number、String与Boolean在上一章节我们已详细讲解,这一章我们主要讲解剩下部分
- list
Python内置的一种数据类型是list,list是一种有序结合。例如:
language = ['C','Java','python','NodeJs']
print(language) #打印列表language
print(type(language)) #type()函数可获取该数据的数据类型,并打印出来
print(len(language)) #len()函数可获取list元素的个数,并打印出来
打印结果为:
['C', 'Java', 'python', 'NodeJs']
<class 'list'>
4
如果我们想要访问list的每一个位置的元素,记得索引
是从0
开始,索引的最大值为len(list) - 1
。
language = ['C','Java','python','NodeJs']
print(language[0]) #获取list的第一个值
print(language[1]) #获取list的第二个值
print(language[2]) #获取list的第三个值
print(language[3]) #获取list的第四个值
print(language[len(language) - 1]) #获取list的最后一个值,等同于print(language[3])
print(language[-1]) #获取list的最后一个值,等同于print(language[3]),该索引会直接获取list的最后一个值
#以此类推可以获取list倒数第二个值,倒数第三个值,也不可超过list个数上线
打印为:
C
Java
python
NodeJs
NodeJs
NodeJs
由于list是一个可变
的有序表
,所以我们也可对list进行追加
、插入
、删除
、查询
等相关操作。例如:
num = [1 , 2 , 3]
print(num)
num.append(4) #通过append()函数,在num末尾进行追加
print(num)
num.insert(0,7) #通过insert()函数,把元素插入到指定位置。比如在索引号为0的位置追加数字 7
print(num)
num.pop() #通过pop()函数,删除list末尾的元素
print(num)
num.pop(0) #我们也可通过pop(i),i为索引位置,进行指定删除某个元素
print(num)
num[0] = "替换成功" #我们也可把某个元素替换成别的值,一个list内可包含多种不同数据类型的值
print(num)
打印为:
[1, 2, 3]
[1, 2, 3, 4]
[7, 1, 2, 3, 4]
[7, 1, 2, 3]
[1, 2, 3]
['替换成功', 2, 3]
list还有很多自带的函数,下面把一些常用地函数一一列给大家
language = ['C','Java','python','NodeJs']
num = [1 , 2 , 3 , 1]
list2 = language + num #列表组合
print(list2) #打印列表组合list2
print(max(num)) #使用max()函数获取list num的最大值,并打印出来
print(min(num)) #使用min()函数获取list num的最小值,并打印出来
print(num.count(1)) #查看元素1在list num中出现过的次数
num.reverse() #使list num进行倒序排列
print(num)
num.sort() #使list num进行升序排列
print(num)
num.clear() #清除列表中的所有数据
print(num)
num.extend([5,6,7]) #向list num末尾一次性追加多个值
print(num)
print(5 in num) #判断5是否存在于list num中
print(1 in num) #判断1是否存在于list num中
打印为:
['C', 'Java', 'python', 'NodeJs', 1, 2, 3, 1]
3
1
2
[1, 3, 2, 1]
[1, 1, 2, 3]
[]
[5, 6, 7]
True
False
二维数组:
list1 = [1,2,[11,12,12]]
print(list1) #打印二维数组list1
print(list1[2]) #打印二维数组的第三个值,也就是list1中所包含的list
print(list1[2][0]) #打印所包含的list里的第一个值
打印为:
[1, 2, [11, 12, 12]]
[11, 12, 12]
11
- tuple
另一种有序列表叫做元组,即tuple。tuple与list很相似
,但是tuple是不可变的列表
,一旦初始化就不可修改
,与list相比较为安全
。
定义tuple:
language = ('C','Java','python','NodeJs') #初始化一个tuple
print(language)
top = () #初始化一个为空的tuple
print(top)
top2 = (1) #但如果初始化的tuple只有一个值,则打印出来的则只为tuple内的元素,这就违背了tuple的定义,所以我们为了杜绝这种情况,当tuple内只有一个元素时,应该采用以下写法
print(top2)
top3 = (1,)
print(top3)
打印为:
('C', 'Java', 'python', 'NodeJs')
()
1
(1,)
其他操作
由于tuple初始化成功后
不可改变
,所以不可以
进行修改
。只能进行查询与取值,但如果tuple内存在
list,list内的值
是可以
更改的。
language = ('C','Java','python','NodeJs')
print(language[0]) #根据索引查询tuple内的第一个值
print(language[3]) #根据索引查询tuple内的第四个值
print(language[-1]) #根据索引查询tuple内的最后一个值
print('C' in language) #判断字符串'C'是否在tuple内
del language #删除tuple
#注意!删除tuple即代表不存在,而不像list清空元素,因为tuple定义后即不可更改
打印为:
C
NodeJs
NodeJs
True
- dict
Python内置了
字典
:dict
,dict
全称dictionary,在其他语言中也称为map
,使用键-值(key-value)
存储,具有极快
的查找速度
。 dict特性:使用键值对(key-value)存储,value
是我们要存储查找的数据
,key
是我们要找到数据的钥匙
。key
必须是唯一且
不可变的对象。
grade = {"tom":50,"boby":60,"grad":99} #定义dict
print(grade) #输出dict
print(grade["boby"]) #根据key进行索引查询,若所查询的dict中并没有这个key,则系统会报错
grade["boby"] = 0 #更改key为boby的值
print(grade["boby"])
#而为了判断dict是否拥有这个key,有以下两种方法
print("boby" in grade) #若不存在,则会返回False
print(grade.get("boby")) #若不存在,则会返回None
print(grade.get("boby",-1)) #若不存在,也可返回自己所定义的value
打印为:
{'tom': 50, 'boby': 60, 'grad': 99}
60
0
True
0
0
由于dict
内部存放的顺序和key
放入的顺序是没有关系
的,所以插入、删除、查询一切都是根据dict内的key
的值。
grade = {"tom":50,"boby":60,"grad":99} #定义dict
grade['join'] = 88 #向grade中添加数据,key为join,value为88
print(grade)
grade.pop('boby') #删除key为boby的这一组数据
print(grade)
# 遍历,循环出的所有的value值
for i in grade.values():
print(i)
grade.clear() #清空dict
del grade #删除dict
打印为:
{'tom': 50, 'boby': 60, 'grad': 99, 'join': 88}
{'tom': 50, 'grad': 99, 'join': 88}
50
99
88
- set
set
和dict
类似,也是一组key
的集合
,但不存储
value。由于key不能重复
,所以,在set
中,没有
重复的key。
由于key
必须
是唯一的且不可变
的,所以set中所有的值也都要有这种特性的
在创建set需要一个list
或者tuple
或者dict
作为输入集合,重复元素在set中可以重复添加但是会被自动过滤
。
s1 = set([1,2,3]) #以list作为一个输入集合创建set
print(s1)
s2 = set((1,2,3,2,1)) #以tuple作为一个输入集合创建set,重复元素会被自动忽略
print(s2)
s3 = set({1:"one",2:"two",3:"three"}) #以dict作为一个输入集合创建set,value会被自动忽略
print(s3)
打印为:
{1, 2, 3}
{1, 2, 3}
{1, 2, 3}
其他操作:
s1 = set([1,2,3,4]) #以list作为一个输入集合创建set
s1.add(5) #添加元素5
s1.add(1) #添加元素1,但由于存在1所以此添加忽略
s1.add((7,8,9)) #添加元组,因为元组不可变,列表、字典均可变所以不可添加
print(s1)
#打碎插入
s2 = set([1,2,3])
s2.update([4,5,6]) #打碎插入,插入整个List
s2.update((6,7,8)) #打碎插入,插入整个Tuple
s2.update("daab") #打碎插入,插入整个字符串
print(s2)
s2.remove(1) #删除s2中值为1的key
print(s2)
a1 = s1 & s2 #a1为s1与s2所有的交集
print(a1)
a2 = s1 | s2 #a2为s1与s2所有的并集
print(a2)
打印为
{1, 2, 3, 4, 5, (7, 8, 9)}
{1, 2, 3, 4, 5, 6, 7, 8, 'a', 'd', 'b'}
{2, 3, 4, 5, 6, 7, 8, 'a', 'd', 'b'}
{2, 3, 4, 5}
{1, 2, 3, 4, 5, 6, 7, 8, (7, 8, 9), 'b', 'a', 'd'}