简介
通过学习变量,我们知道了数据可以存储到变量当中。但是,当我们拥有大量的数据需要存储,并且对他们的格式有一定的要求时,仅仅通过变量一个一个地去创建就有些笨拙了。而且在人工智能深度学习中对数据集处理时也需要用到数据结构的知识。为此,本文将给大家介绍python中的基础数据结构。
一、列表(list)
列表是python中一种简单的数据结构,用方括号"[]"表示。其中的元素用逗号隔开。列表当中的元素类型可以是多样的,而且列表中的元素是有序的,可更改的。
列表创建与查找
创建示例:
list_1 = [123, '123', 'abcd', True]
list_2 = list((456, '456', 'efgh', False)) # 通过list()函数创建列表
print(list_1)
print(list_2)
结果:
[123, '123', 'abcd', True]
[456, '456', 'efgh', False]
查找示例:
# 通过索引查找列表中元素
list_1 = [123, '123', 'abcd', True, '123']
save = list_1[0]
print(save)
list_2 = [[1, 2, 3], [4, 5, 6]]
save = list_2[0]
print(save)
save = list_2[0][1]
print(save)
# 通过索引对列表切片
save = list_1[0:2]
print(save)
# 通过count方法查询列表中某个元素的个数
print(list_1.count('123'))
# 通过index函数查询元素位置
print(list_1.index('123'))
结果:
123
[1, 2, 3]
2
[123, '123']
2
1
注:
1)这里list_2是二维列表。辨别列表维度的简单方法就是看列表最左边或最右边的方括号个数,如这里最左边是"[[",为两个方括号,即为二维列表。
2)python中对于区间的定义是“左闭右开”的,所以对列表切片时有索引“0”的数据,但没有索引“2”的数据。
列表增删改等操作
增示例:
#通过append方法在列表后追加
list_1 = [123, '123', 'abcd', True]
list_1.append('csdn')
list_1.append(['真的', '很好用'])
print(list_1)
#在列表中插入
list_1.insert(7, '吗?')
print(list_1)
#通过extend方法在列表后追加
save = ['是', '的']
list_1.extend(save)
print(list_1)
#列表拼接
list_2 = ['cs', 'dn']
list_3 = list_1 + list_2
print(list_3)
#列表乘法
print('列表乘法:', list_2*3)
结果:
[123, '123', 'abcd', True, 'csdn', ['真的', '很好用']]
[123, '123', 'abcd', True, 'csdn', ['真的', '很好用'], '吗?']
[123, '123', 'abcd', True, 'csdn', ['真的', '很好用'], '吗?', '是', '的']
[123, '123', 'abcd', True, 'csdn', ['真的', '很好用'], '吗?', '是', '的', 'cs', 'dn']
列表乘法: ['cs', 'dn', 'cs', 'dn', 'cs', 'dn']
注:
append方法和extend方法对于列表的追加作用是不同的,append是在列表后追加新的对象,这个对象可以是一个列表。但对于extend来说,相当于合并列表,即在列表后追加新的元素。extend方法的更多用法大家可以自行csdn一下。
删示例:
#通过remove方法删除元素
list_1 = [123, '456', 'abcd', True, '456']
list_1.remove('456')
print(list_1)
#通过pop方法按索引删除元素
save = list_1.pop(-1)
print(save, list_1)
list_1.pop(0)
print(list_1)
#通过clear方法删除
list_1 = [123, '456', 'abcd', True, '456']
list_1.clear()
print(list_1)
#通过del方法删除
list_1 = list_1 + ['编程很简单', 456, '123', 123, 'abcd']
del list_1[3:]
print(list_1)
del list_1
print(list_1)
结果:
[123, 'abcd', True, '456']
456 [123, 'abcd', True]
['abcd', True]
[]
['编程很简单', 456, '123']
NameError: name 'list_1' is not defined
注:
1)用remove方法删除元素只会删除第一次出现的元素。
2)通过pop方法删除有返回值。
改示例:
#通过索引修改列表内容
list_1 = [123, '456', 'abcd', True, '456']
list_1[2] = '大西瓜'
print(list_1)
#通过切片修改列表内容
list_1[0:2] = '小西瓜也好吃'
print(list_1)
list_1[0:5] = ['我', '喜欢']
print(list_1)
#通过reverse方法翻转列表
list_1 = [1, 2, 3, 4, 5]
list_1.reverse()
print(list_1)
#通过sort方法进行列表排序
list_1.sort()
print(list_1)
结果:
[123, '456', '大西瓜', True, '456']
['小', '西', '瓜', '也', '好', '吃', '大西瓜', True, '456']
['我', '喜欢', '吃', '大西瓜', True, '456']
[5, 4, 3, 2, 1]
[1, 2, 3, 4, 5]
二、元组(tuple)
元组是python中更简单的一种数据结构,用括号"()"表示。其中的元素用逗号隔开。元组和列表类似,只是不能修改而已。
元组创建
创建示例:
#元组创建
tu_1 = (1, 2, 3, '4', 5, 4, 3, 2, 1)
tu_2 = 1, 2, 3, '4', 5, 4, 3, 2, 1
tu_3 = 1,
tu_4 = 1
print(tu_1)
print(tu_2)
print(tu_3, type(tu_3))
print(tu_4, type(tu_4))
结果:
(1, 2, 3, '4', 5, 4, 3, 2, 1)
(1, 2, 3, '4', 5, 4, 3, 2, 1)
(1,) <class 'tuple'>
1 <class 'int'>
注:
1)当元组不为空时,括号可以省略。
2)当元组只有一个元素时,需加上逗号。
3)其实这些基本用不上,记不住只用第一种就行。
元组操作
操作示例:
#元组查找
tu_1 = (1, 2, 3, '4', 5, 4, 3, 2, 1)
print(tu_1[3])
print(tu_1[0:4])
#元组拼接
tu_2 = ('abc', 'def')
tu_3 = tu_1 + tu_2
print(tu_3)
结果:
4
(1, 2, 3, '4')
(1, 2, 3, '4', 5, 4, 3, 2, 1, 'abc', 'def')
三、字典(dict)
字典是python中更更简单的一种数据结构,用大括号"{}“表示。在字典中,数据是以“键值对”的形式存在。所谓“键值对”,就是一个键(key)对应一个数据值(value),形象表示就是 dict = {key1 : value1, key2 : value2 } 这种样式的。键和值之间用冒号”:“分割,每对之间用逗号”,"分割。
字典创建与查询
示例:
#字典创建
dic_1 = {
'姓名': '老王', '年龄': 80, '性别': '男'}
print(dic_1)
#字典查询
print(dic_1['姓名'])
#查询键
print(dic_1.keys())
#查询值
print(dic_1.values())
#查询对
print(dic_1.items())
结果:
{
'姓名': '老王', '年龄': 80, '性别': '男'}
老王
dict_keys(['姓名', '年龄', '性别'])
dict_values(['老王', 80, '男'])
dict_items([('姓名', '老王'), ('年龄', 80), ('性别', '男')])
字典增删改等操作
示例:
#字典增加
dic_1 = {
'姓名': '老王', '年龄': 80, '性别': '男'}
print(dic_1)
dic_1['身高'] = '180'
print(dic_1)
#字典修改
dic_1['身高'] = '160'
print(dic_1)
#通过del方法进行字典删除
del dic_1['性别']
print(dic_1)
#通过pop方法进行字典删除
save = dic_1.pop('年龄')
print(save, dic_1)
#通过clear方法进行字典删除
dic_1.clear()
print(dic_1)
结果:
{
'姓名': '老王', '年龄': 80, '性别': '男'}
{
'姓名': '老王', '年龄': 80, '性别': '男', '身高': '180'}
{
'姓名': '老王', '年龄': 80, '性别': '男', '身高': '160'}
{
'姓名': '老王', '年龄': 80, '身高': '160'}
80 {
'姓名': '老王', '身高': '160'}
{
}
注:
通过pop方法删除有返回值。