網站首頁 編程語言 正文
數據結構是通過某種方式(例對元素進行編號)組織在一起數據元素的集合。python中最基本的數據結構是序列,序列中被分配的序列號又稱為索引。
python中列表、元組、字符串、range對象都是有序數據結構
python中字典和集合屬于無序序列結構,但可以遍歷,字典還可以通過鍵來索引引用。
- 列表
列表里的元素可以是python中任何對象,包括array、DataFrame、字典 、集合、列表都可以。
(1)列表的初始化
my_list=[];#可以存在空列表
my_list.append('hello')#列表追加元素
my_list1=[0,3,6,7,10]
my_list1[2]=8 #進行索引改值
(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:]) #和字符串一樣的切片索引
?
?(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 泡泡怡喜歡英語
原文鏈接:https://blog.csdn.net/m0_72662900/article/details/125748987
相關推薦
- 2022-05-27 Jmeter通過OS進程取樣器調用Python腳本實現參數互傳_python
- 2022-12-05 Windows的sc命令詳解(sc命令用法)_DOS/BAT
- 2022-12-02 基于Go語言實現類似tree命令的小程序_Golang
- 2022-07-17 C++深入講解namespace與string關鍵字的使用_C 語言
- 2022-05-21 ASP.NET?MVC中_ViewStart.cshtml作用介紹_基礎應用
- 2022-11-23 Android移除Message的方法分享_Android
- 2022-02-26 sparksql之通過 structType 創建 DataFrames(編程接口)
- 2023-01-07 一篇文章徹底弄懂Python中的if?__name__?==?__main___python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支