上文我们介绍了Python基础数据类型中的数字、布尔、字符串类型,今天主要介绍列表、元组、字典和集合类型。
List(列表)
序列是 Python 中最基本的数据结构。
序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。
列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 'Runoob', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"] list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
访问列表中的值
与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。通过索引列表可以进行截取、组合等操作。
list = ['red', 'green', 'blue', 'yellow', 'white', 'black'] print( list[0] ) print( list[1] ) print( list[2] )
索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
list = ['red', 'green', 'blue', 'yellow', 'white', 'black'] print( list[-1] ) print( list[-2] ) print( list[-3] )
使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,如下所示:
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90] print(nums[2:7]) print(nums[2:-2])
列表对象的常用方法汇总如下:
l = [0,'张三','李四',100] l.append('王麻子') # 在列表尾部添加元素 print(l) l.insert(1,20) # 在列表索引为1(也就是‘张三’的前面)的位置插入一个20 print(l) l.remove('李四') # 删除列表中的‘李四’ print(l) l.reverse() # 将列表中的元素全部翻转,即倒叙输出,等价于l[::-1] print(l) print(l[::-1])
列表相关的其他内置函数
max和min:用于返回列表中最大和最小值。
sum:对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。
a = [10,20,30] print(min(a)) print(max(a)) print(sum(a))
Tuple(元组)
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号 ( ),列表使用方括号 [ ]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tup1 = ('Google', 'Runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d" # 不需要括号也可以 print(type(tup3)) # 元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用: tup1 = (50) print(type(tup1)) # 不加逗号,类型为整型 tup1 = (50,) print(type(tup1)) # 加上逗号,类型为元组
元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。
tup = ('Google','Runoob',1997,2000,26.0,0) print(tup[0]) print(tup[-2]) print(tup[2:5]) print(tup[2:-1])
Dictionary(字典)
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。 一个简单的字典实例:tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}
# 创建字典方法1-使用大括号 dict1 = {} print(type(dict1)) # 创建字典方法2-使用内置函数 dict2 = dict() print(type(dict2)) # 创建字典方法3-使用zip()函数 k = ['name','age','job'] v = ['艾派森',18,'板砖'] d = dict(zip(k,v)) print(d)
# 字典的访问 d = {'name': '艾派森', 'age': 18, 'job': '板砖'} # 获取字典的所有键值对 print(d.items()) # 获取字典的键 print(d.keys()) # 获取字典的值 print(d.values()) # 访问值方法1-get() 如果获取不到,返回结果为None print(d.get('name'),d.get('job')) print(d.get('school')) # 访问值方法2-['key'] 如果获取不到,会报错keyError print(d['name'],d['job']) print(d['school'])
# 修改字典 d = {'name': '艾派森', 'age': 18, 'job': '板砖'} d['age'] = 10 # 更新信息 d['school'] = '家里蹲大学' # 添加新的键值对 del d['job'] # 字典中元素的删除,可以使用 del() 方法;或者 clear() 删除所有键值对; print(d)
Set(集合)
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:parame = {value01,value02,...} 或者 set(value)
# 集合创建和删除 # 1.使用{}创建集合对象,并使用add()方法添加元素 a = {3,5,7} a.add(9) # {9, 3, 5, 7} print(a) # 2.使用set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个 a = ['a','b','c','b'] b = set(a) # {'b', 'a', 'c'} print(b) # 3.remove()删除指定元素;clear()清空整个集合 a = {10,20,30,40,50} a.remove(20) # {50, 40, 10, 30} print(a)
集合相关操作
像数学中概念一样,Python对集合也提供了并集、交集、差集等运算。
a = {2,7,'abc'} b = {'he','it','abc'} print(a|b) # 并集 {2, 'it', 7, 'he', 'abc'} print(a&b) # 交集 {'abc'} print(a-b) # 差集 {2, 7}print( print(a.union(b)) # 并集 print(a.intersection(b)) # 交集 print(a.difference(b)) # 差集
集合内置方法完整列表
类型转换总结
与C++、Java等高级程序设计语言一样,Python语言同样也支持数据类型转换。
a = 11 b = 5.8 c = 'acd' d = '120' print(type(str(a)),type(str(b))) print(type(float(a)),type(float(b))) print(type(float(d)),type(float(d))) print(type(float(c)),type(float(c))) # 字符中全为数字才可以转为数字类型