Python 内置的基本数据机构有4种:列表(list),元组(tuple),字典(dict)和集合(set)。
1 列表
列表是一个有序的元素类型,类似其他语言中的数组,其中的元素可以是任何Python 支持的数据类型,比如字符串、逻辑型、整数、浮点等。与其他语言不同的是,同一个列表里的元素可以是不同的数据类型。
1.1 列表的创建和访问
请你在python 自带的编辑器中尝试运行以下代码:
#python
my_list1 = ["123",123,True,56.7,12]
print("第一个元素是:",my_list1[0])
print("第二个元素是:",my_list1[1])
print("第三个元素是:",my_list1[2])
print("第四个元素是:",my_list1[3])
print("最后一个元素是:",my_list1[-1])
代码1
list 直接使用方括号定义、等号赋值的同时来创建,不同元素间用逗号分隔。
如果想要访问列表中的元素,可以采用 列表名[元素序号] 的方式对其中元素进行访问,元素序号是从 0 开始。Python还可以使用 负数序号 进行访问,例如 代码1 中输出最后一个元素 使用的元素序号为 -1。
1.2 列表的切取访问
在实践前,先来了解切取访问的常用格式:
“列表名[:n]”,表示切取列表的前n个元素;
“列表名[-n:]”,表示切取列表的后n个元素;
“列表名[n:m]”,表示切取列表的第n+1个元素一直到第m个元素。
仍然以 代码1 为例:
#python3
first_three = my_list1[:3]
last_three = my_list1[-3:]
without_first_last = my_list1[1,-1]
代码2
请在解释器中运行,查看一下运行结果。
需要注意的是,使用切片操作返回值是一个新的列表。
1.3 列表的修改、追加和插入
#python3
my_list1[0] = 0
print("修改后第一个元素列表为",my_list1)
my_list1.append("haha")
print("向列表最后追加一个元素,列表为", my_list1)
my_list1.insert(1,"hello")
print('向列表第2个位置添加一个元素,列表为', my_list1)
代码3
在代码3中,直接使用元素序号赋值新的值来覆盖原先的值,还可以使用 append 方法想最后一个位置追加新元素,通过insert 方法向指定位置添加新的元素。
2. 元组
元组与列表类似,区别在于元组不允许被修改,只能被访问。元组是通过圆括号或无括号来定义,元素之间通过逗号分隔。元素的访问格式与列表类似,在这里不重复演示,请读者自行尝试。
#python3
my_tuple = (1,2,3)
my_tuple1 = 4,5
print(“第一个元组为”,my_tuple)
print("第二个元组为",my_tuple1)
代码4
3. 字典
字典结构由
{key1:value1,key2:value2, ...} 的形式来定义。字典中的每一个元素都由键和值。
3.1 字典的定义和应用
#python3
dict_score = {"good":90,"soso":70,"bad":50}
my_score = dict_score["good"]
print("我的成绩是",my_score)
his_score = dict_score["soso"]
print("他的成绩是",his_score)
从上述代码中可以看到访问字典的格式是“字典名[键]”,字典中的元素也确实没有顺序的定义。
字典中的键不可以重复,也不可以修改。凡是可能被修改的对象,如列表、字典、集合都不能作为键。字典中的值并不要求是不可重复的。
3.2 字典的修改
#python3
dict_score["good"] = 95
print("修改后的字典good值为",dict_score["good"])
dict_score["excellent"] = 100
#输出字典的所有键
dict_score.keys()
#输出字典所有的值
dict_score.values()
#输出字典所有的元素
dict_score.items()
4 集合
集合中存放不重复的元素,且没有顺序的定义。集合也是用大括号界定的,但其中由逗号分隔的各个元素是单个的、不可变的数据,所以与字典相比较,集合相当于只有键,没有值。集合数据结构主要支持数学上的集合操作。
#python3
my_set = {"set","123",123,True}
print(my_set)
my_set.add(5)
my_set.remove("123")
集合中的元素是不能修改的,也没有顺序定义,不能使用序号访问元素,要追加或删除其中元素时,需调用集合结构中的add函数或remove函数,并在函数中直接指明元素内容的本身。