Python常用的8种经典数据结构:

  1. Python原生数据结构:元组tumple() 列表list[] 集合{} 字典{A:B}
  2. Numpy包中的数据结构:数组NDarray(带多种操作),矩阵Matrix(多种线性代数计算)
  3. Pandas包中的数据结构:序列Series(索引+1列数据),数据框DataFrame(索引+多列数据集)

列表list[ ]

特点
  1. 列表list是最重要的Python内置对象之一,是包含若干元素的有序连续内存空间。
  2. 当列表增加或删除元素时,列表对象自动进行内存的扩展或收缩,从而保证相邻元素之间没有空隙。
  3. 为了提高效率,应尽量从列表尾部进行元素的追加和删除操作。

Python 数据框转化为字典 python列表转数据框_python list转字符串

1

创建list:

1.一维列表的创建。使用[]可以直接创建一个列表对象。列表是一种有序的序列,可以随时添加和删除其中的元素。

numbers = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]empty = []print('numbers的元素是',numbers,      '\n显示该数据的结构类型',type(numbers),      '\nempty的元素是',empty)
numbers = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
empty = []
print('numbers的元素是',numbers,
      '\n显示该数据的结构类型',type(numbers),
      '\nempty的元素是',empty)


结果:

numbers的元素是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 显示该数据的结构类型  empty的元素是 []
numbers的元素是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 显示该数据的结构类型  empty的元素是 []

2.多维列表的创建。尽管list默认是一维的,但在实际应用中我们可以根据需要创建多维列表。多维列表的创建可以使用[]的嵌套。

list_two=[[1,2],['a','b']]list_two
list_two=[[1,2],['a','b']]
list_two


结果:

[[1, 2], ['a', 'b']]br
br



Python 数据框转化为字典 python列表转数据框_python list转字符串

2

list查询操作

  • 切片:list[a:b]返回一个含有列表中第a至b-1( [a,b)左闭右开区间 )个元素的列表对象。list[::a]返回一个从列表第一个元素起始,步长为a的列表对象。
  • 索引:list[i]则会索引下标为i的元素,若i为负,则从列表尾部从后至前访问第i个元素。

Python 数据框转化为字典 python列表转数据框_python series转list_03

print('\n列表切片',numbers[1:8],      '\n固定步长切片',numbers[::2],      '\n从后往前索引',numbers[-3])
print('\n列表切片',numbers[1:8],
      '\n固定步长切片',numbers[::2],
      '\n从后往前索引',numbers[-3])


结果:

列表切片 [1, 2, 3, 4, 5, 6, 7] 固定步长切片 [0, 2, 4, 6, 8, 10, 12, 14] 从后往前索引 12
固定步长切片 [0, 2, 4, 6, 8, 10, 12, 14] 
从后往前索引 12



Python 数据框转化为字典 python列表转数据框_python list转字符串

3

list增加操作


列表的增加。append()可以在列表末尾增加新的项目,可以增加一个元素,也可以增加一个list对象从而成为多维列表。

numbers.append('zhao')print('增加元素后的列表numbers:',numbers)list_two.append(['Hello','Girl'])print('增加列表后的列表:',list_two)
numbers.append('zhao')
print('增加元素后的列表numbers:',numbers)
list_two.append(['Hello','Girl'])
print('增加列表后的列表:',list_two)


结果:

增加元素后的列表numbers:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 'zhao', 'zhao']增加列表后的列表:[[1, 2], ['a', 'b'], ['Hello', 'Girl'], ['Hello', 'Girl']]
增加元素后的列表numbers:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 'zhao', 'zhao']
增加列表后的列表:[[1, 2], ['a', 'b'], ['Hello', 'Girl'], ['Hello', 'Girl']]



Python 数据框转化为字典 python列表转数据框_python list转字符串

4

list删除操作


列表的删除。remove()函数可以删除指定值的元素,list.remove(i)会删除list对象中值为i的元素,若不存在则报错。pop()函数可以删除指定下标的元素,默认为列表对象的最后一个元素,list.pop(i)将删除下标为i的元素。

numbers.remove('zhao')list_two.pop()print('删除指定下标元素后的列表对象:',numbers,      '\n删除最后一个元素的列表对象:',list_two)
numbers.remove('zhao')
list_two.pop()
print('删除指定下标元素后的列表对象:',numbers,
      '\n删除最后一个元素的列表对象:',list_two)


结果:

删除指定下标元素后的列表对象:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 删除最后一个元素的列表对象:[[1, 2], ['a', 'b']]
删除指定下标元素后的列表对象:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 
删除最后一个元素的列表对象:[[1, 2], ['a', 'b']]



Python 数据框转化为字典 python列表转数据框_python list转字符串

5

list修改操作


列表修改。list[i]=x 可以直接替换列表指定下标的元素。(注意与元组区分)

numbers[0] = 100print('\n修改后的列表为',numbers)
numbers[0] = 100
print('\n修改后的列表为',numbers)


结果:

修改后的列表为 [100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
修改后的列表为 [100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]



Python 数据框转化为字典 python列表转数据框_python list转字符串

6

list转换为其他数据结构


列表数据类型转换。列表作为最常用的数据类型之一,可以便利地转换为各种数据类型。和元组相似,单个列表无法直接转换成字典。

print('\n列表转元组:\n',tuple(numbers),      '\n列表转字符串:\n',str(numbers),      '\n',type(str(numbers)))
print('\n列表转元组:\n',tuple(numbers),
      '\n列表转字符串:\n',str(numbers),
      '\n',type(str(numbers)))


结果:

列表转元组: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100) 列表转字符串: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]  
列表转元组:
 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100) 
列表转字符串:
 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]



Python 数据框转化为字典 python列表转数据框_python list转字符串

7

其他数据结构转list

  • 使用list()函数可把元组,range对象,字符串,字典,集合或其他可迭代对象转换为列表。
  • 需要注意,字典转列表时默认对字典的“键”进行转换。可使用字典对象的items()方法或.values()方法对字典的元素或“值”进行转换。
list_from_tumpl = list((1,2,3)) #元组转列表list_from_range = list(range(5)) #range对象转列表list_from_str = list('我爱你') #字符串转列表list_from_set = list({'z','f','y','c','w','j'}) #集合转列表list_from_dic_key = list({'B':'z','G':'z'}) #字典转列表(默认为键key)list_from_dic_items = list({'B':'z','G':'z'}.items()) #字典转列表(指定为items)list_from_dic_values = list({'B':'z','G':'z'}.values()) #字典转列表(指定为值value)print('依次显示:','\n',list_from_tumpl,'\n',list_from_range,      '\n',list_from_str,'\n',list_from_set,     '\n',list_from_dic_key,'\n',list_from_dic_items,      '\n',list_from_dic_values)
list_from_tumpl = list((1,2,3)) #元组转列表
list_from_range = list(range(5)) #range对象转列表
list_from_str = list('我爱你') #字符串转列表
list_from_set = list({'z','f','y','c','w','j'}) #集合转列表
list_from_dic_key = list({'B':'z','G':'z'}) #字典转列表(默认为键key)
list_from_dic_items = list({'B':'z','G':'z'}.items()) #字典转列表(指定为items)
list_from_dic_values = list({'B':'z','G':'z'}.values()) #字典转列表(指定为值value)
print('依次显示:','\n',list_from_tumpl,'\n',list_from_range,
      '\n',list_from_str,'\n',list_from_set,
     '\n',list_from_dic_key,'\n',list_from_dic_items,
      '\n',list_from_dic_values)


结果:

依次显示: [1, 2, 3]  [0, 1, 2, 3, 4]  ['我', '爱', '你']  ['w', 'y', 'f', 'c', 'j', 'z']  ['B', 'G']  [('B', 'z'), ('G', 'z')]  ['z', 'z']
依次显示:
 [1, 2, 3] 
 [0, 1, 2, 3, 4] 
 ['我', '爱', '你'] 
 ['w', 'y', 'f', 'c', 'j', 'z'] 
 ['B', 'G'] 
 [('B', 'z'), ('G', 'z')] 
 ['z', 'z']



Python 数据框转化为字典 python列表转数据框_python list转字符串

8

list其他操作

  • (1)list.reverse()可以使列表倒置。
  • (2)len(list)可以统计列表元素的个数。
  • (3)list.sort()可以使列表元素升序排列。
numbers.reverse()print('\n倒置后的列表是',numbers,      '\n统计列表元素的个数',len(numbers))numbers.sort()print('sort列表升序排列',numbers)
numbers.reverse()
print('\n倒置后的列表是',numbers,
      '\n统计列表元素的个数',len(numbers))
numbers.sort()
print('sort列表升序排列',numbers)


结果:

倒置后的列表是 [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100] 统计列表元素的个数 15sort列表升序排列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]
倒置后的列表是 [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100] 
统计列表元素的个数 15
sort列表升序排列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]
  • (4)max(list)返回list中最大值。(list中元素需可比较)
  • (5)min(list)返回list中最小值。(list中元素需可比较)
  • (6)list.count(x)返回x在list中出现总次数。
demo_list = [0,5,3,8,100,20,3,2,3]print('\ndemo_list中的最大元素:',max(demo_list),      '\ndemo_list中的最小元素:',min(demo_list),      '\ndemo_list中3出现的次数:',demo_list.count(3))
demo_list = [0,5,3,8,100,20,3,2,3]
print('\ndemo_list中的最大元素:',max(demo_list),
      '\ndemo_list中的最小元素:',min(demo_list),
      '\ndemo_list中3出现的次数:',demo_list.count(3))


结果:

demo_list中的最大元素:100 demo_list中的最小元素:0 demo_list中3出现的次数:3
demo_list中的最大元素:100 
demo_list中的最小元素:0 
demo_list中3出现的次数:3
  • (7)list.append(x)将x追加到list尾部。
  • (8)list.extend(L)将列表L中的所有元素追加到list尾部。
  • (9)list.insert(index,x)在list的index位插入x。
demo_list = [0,5,3,8,100,20,3,2,3]demo_list.append('SHE') #在demo_list末尾追加'SHE'print('demo_list.append(SHE)',demo_list)demo_list.extend(numbers) #在demo_list末尾追加numbers中的元素print('demo_list.extend(numbers)',demo_list)demo_list.insert(3,'HI') #在demon_list的[3]位置插入元素'HI'print('demo_list.insert(3,"HI")',demo_list)
demo_list = [0,5,3,8,100,20,3,2,3]
demo_list.append('SHE') #在demo_list末尾追加'SHE'
print('demo_list.append(SHE)',demo_list)
demo_list.extend(numbers) #在demo_list末尾追加numbers中的元素
print('demo_list.extend(numbers)',demo_list)
demo_list.insert(3,'HI') #在demon_list的[3]位置插入元素'HI'
print('demo_list.insert(3,"HI")',demo_list)


结果:

demo_list.append(SHE) [0, 5, 3, 8, 100, 20, 3, 2, 3, 'SHE']demo_list.extend(numbers) [0, 5, 3, 8, 100, 20, 3, 2, 3, 'SHE', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]demo_list.insert(3,"HI") [0, 5, 3, 'HI', 8, 100, 20, 3, 2, 3, 'SHE', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]
demo_list.append(SHE) [0, 5, 3, 8, 100, 20, 3, 2, 3, 'SHE']
demo_list.extend(numbers) [0, 5, 3, 8, 100, 20, 3, 2, 3, 'SHE', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]
demo_list.insert(3,"HI") [0, 5, 3, 'HI', 8, 100, 20, 3, 2, 3, 'SHE', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 100]



Python 数据框转化为字典 python列表转数据框_python list转字符串

9

list对象支持的运算符

  • + :连接两个列表
  • * :列表的重复
a = [1,2]b = [3,4]print("a+b:",a+b)print("a*3",a*3)
a = [1,2]
b = [3,4]
print("a+b:",a+b)
print("a*3",a*3)


结果:

a+b: [1, 2, 3, 4]a*3 [1, 2, 1, 2, 1, 2]
a+b: [1, 2, 3, 4]
a*3 [1, 2, 1, 2, 1, 2]



Python 数据框转化为字典 python列表转数据框_python list转字符串


参考资料:

[1]董付国.Python程序设计基础(第二版)[M].北京:清华大学出版社,2015:42-59

[2]刘经纬,陈佳明.创新创业+新工科教学质量提升研究——零基础学会Python人工智能[M].北京:首都经济贸易大学出版社,2020:25-26

[3]嵩天.PYE6.2-序列类型及操作v2.5[Z].2020