数据结构是通过某种方式(例对元素进行编号)组织在一起数据元素的集合。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 列表序号 python序列数据有哪些_字符串

(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 列表序号 python序列数据有哪些_元组_02

 (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.字典

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

(1).字典的定义和删除

#1.第1种定义
my_dict1={'paopaoyi':100,'yaolaotou':300}    #各key-value值对没有先后顺序
print(my_dict1)
#2.第2种定义
my_dict2={}   #空字典
my_dict2['paopaoyi']=300
my_dict2['yaolaotou']=600
print(my_dict2)
#3.删除字典
del my_dict2

结果: {'paopaoyi': 100, 'yaolaotou': 300} {'paopaoyi': 300, 'yaolaotou': 600}

(2)字典的索引和更新

my_dict1={'ppy':100,'oldman':300} 
my_dict2={'ooo':400,'ppy':'class'}
print(my_dict1['ppy'])#索引字典中的值
my_dict1.update(my_dict2)   #my_dict2和my_dict1中键一样的就替换为my_dict2中的值,不一样的就加到my_dict1中
print(my_dict1)

结果: 100 {'ppy': 'class', 'oldman': 300, 'ooo': 400}

(3)字典的属性

print(my_dict1.keys ())         #返回该字典的键列表
print(my_dict1.values())        #返回该字典的值列表
print(my_dict1.items())         #返回该字典的键-值对构成的列表,列表中的元素为键-值对构成的元组。

(4)遍历同列表

4.集合

  • 集合里的元素没有重复值,集合和字典一样属于无序,列表和元组有序。并且集合里边的元素不能有列表,一般情况下集合里的元素应该一个类型。
#1.集合的定义
my_set1={123,234,'asd',(2,3)}
print(my_set1)
#集合的类型转换
my_set2=set([1,2,3,5,7,3,5,3,2,4])   #通过set函数将列表转换为集合,重复的元素只显示一个,这个功能类似以Series的unique()方法,这个有用
print(my_set2)

 (5)字符串

#1.拆分
my_str = '1 2 3 4 5'
my_str.split()   #默认以空格为分裂符,返回一个列表
my_str= '1,2,3,4,5'
my_str = my_str.split(',')  #以逗号为分裂符,返回一个列表
print(my_str)
#2.合并
my_str1=['AB','CD','EF']
new_str1=','.join(my_str1)#以逗号分隔符合并列表的元素
print(new_str1)
new_str2=' '.join(my_str1) #无空格符合并
print(new_str2)
#3.计数
my_str3='paopaoyi is very beautiful,beautiful,yeah'
number=my_str3.count('beautiful')
print(number)
#4.替换
my_str4='泡泡怡喜欢算法'
new_my_str4=my_str4.replace('算法','英语')
print(new_my_str4)

结果: ['1', '2', '3', '4', '5'] AB,CD,EF AB CD EF 2 泡泡怡喜欢英语