Python中常用序列数据结构

发布时间:2022-08-18 18:57

数据结构是通过某种方式(例对元素进行编号)组织在一起数据元素的集合。python中最基本的数据结构是序列,序列中被分配的序列号又称为索引。
python中列表、元组、字符串、range对象都是有序数据结构
python中字典和集合属于无序序列结构,但可以遍历,字典还可以通过键来索引引用。

  1. 列表

列表里的元素可以是python中任何对象,包括array、DataFrame、字典 、集合、列表都可以。

(1)列表的初始化

my_list=[];#可以存在空列表
my_list.append('hello')#列表追加元素
my_list1=[0,3,6,7,10]
my_list1[2]=8 #进行索引改值

Python中常用序列数据结构_第1张图片

(2)列表的切片和字符串相同都是冒号.

​# 列表是有序序列,可以按序号索引引用
my_list=[9,5,3,7,10,5]
print(my_list[-1])
print(my_list[0:2])#左闭右开
print(my_list[:-1])#倒着数索引从负一开始
print(my_list[0:])  #和字符串一样的切片索引

Python中常用序列数据结构_第2张图片

 (3)列表排序和反转

#1.排序(使用列表的方法)
my_list1=[1,5,2,9,3]  
my_list1.sort() #默认reverse=False,即按值从小到大顺序生成列表,此列表已经改变
my_list1.sort(reverse=True)#reverse=True即按值从大到小顺序生成列表
c=sorted(my_list1)#原列表没有改变
#2.反转
my_list.reverse()

(4)列表的合并、插入、删除元素

​#1.列表合并
my_list1=['ppy', 'ylt','wawa']
my_list2=[1,2,3]
my_list3=my_list1+my_list2#两个列表合成一个列表,充分利用了‘+’的作用
print(my_list3*3)    #复制两份和原来列表合并在一起
#2.列表插入元素和移除元素
my_list1.insert(2,'python')
my_list1.remove('wawa')   #移除元素'wawa'
my_list1.pop(1)   #同上一行一样相当于移除,移除第1个元素
print(my_list1)

(5)列表的其他操作

​#1.range
range(1,10,2)#从1开始到10结束,步长是2
#2.将range转成列表
my_list=list(range);
#3.列表的两种遍历输出
#第一种
for elem in my_list: #前提my_list已经写出了
    print(elem)
#第二种 利用索引
for i in range(len(my_list)):
    print(my_list[i])

2.元组

#1.元组定义
my_tuple1=(1,2,[2,3],'baobaoyi')   #和列表定义相似,元组里的元素是任何对象都可以
#2.元组索引
print(my_tuple1[2])
print(my_tuple1[1:3])   #返回一个元组
#3.元组合并
my_tuple1=(1,2,[2,3],'baobaoyi') 
my_tuple2=(100,'hello')
my_tuple=my_tuple1+my_tuple2
print(my_tuple)
#4.将对象转换为元组的函数tuple()
#tuple()函数中的参数可以是列表、字符串或其他序列类型和迭代器
my_list=[4,2,6,True,'paopaoyi']   #列表
my_tuple2=tuple(my_list)    
print(my_tuple2)
my_tuple3=tuple('ABCDE')     #将字符串转化为元组
print(my_tuple3)
print(tuple(range(10)))      #将range对象转换为元组
#5.删除元祖
del my_tuple3   #删除元组
结果:
[2, 3]
(2, [2, 3])
(1, 2, [2, 3], 'baobaoyi', 100, 'hello')
(4, 2, 6, True, 'paopaoyi')
('A', 'B', 'C', 'D', 'E')
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

3.字典

  • 字典的值可以是任何对象,字典的键可以是数字,字符串,元组等不可变数据,但不能为列表、集合、字典等可变对象作为键。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号