第5章-組合序列類型

#全部是重點知識,必須會。
了解序列和索引|的相關概念
掌握序列的相關操作
掌握列表的相關操作
掌握元組的相關操作
掌握字典的相關操作
掌握集合的相關操作

1,序列和索引

1,序列是一個用于存儲多個值的連續空間,每一個值都對應一個整數的編號,稱為 索引

image.png

2,屬于序列結構的還有列表,元組,集合和字典。

  • 列表和元組稱為有序序列
  • 集合和字典稱為無需序列
#正向遞增
s='helloworld'
for i in range(0,len(s)):print(i,s[i],end='\t\t')  #\t不換行輸出
print('\n--------------')
#反向遞減
for i in range(-10,0):print(i,s[i],end='\t\t')  #\t不換行輸出

切片

  • 省略1。默認從0開始。
  • 省略1,2
  • 省略1,3
  • 省略2。默最后一個元素包含最后一個。
  • 省略2,3
  • 省略3。默認步長為1.
  • 省略1,2,3
s='helloworld'
#切片操作
s1=s[0:5:2]
print(s1)
#如果省略start,默認從0開始。
print(s[:5:2])#省略start和end
print(s[::2])
#step為-1	逆序序列***
print(s[::-1])
print(s[-1:-11:-1])#省略start和step。
print(s[:5:])#省略end,默認到序列的最后一個元素(包含最后一個元素)
print(s[0::1])#省略end和step,
print(s[5::])
print(s[5:])#全省略就都打印
print(s[::])#更改step
print(s[0:5:2])

序列

image.png

#序列的相加
print('*'*10)
print('hello'+'world')
#x in s的使用
s='helloworld'
print('l是在s中存在嗎?',('l' in s))
print('k是在s中存在嗎?',('k' in s))
#x not in s的使用
print('l是在s中存在嗎?',('l'not in s))
print('l是在s中存在嗎?',('k'not in s))
#內置函數
print(len(s))#len:列出元素的個數
print(max(s))#按照ACSII碼計算
print(min(s))
#序列的相關方法
print('s.index',s.index('o'))
print('s.index',s.index('l'))
print('s.count',s.index('l'))

2,列表

  • 是指一系列的按特定順序排列的元素組成。
  • 是Python中內置的可變序列
  • 在Python中使用[]定義列表,元素與元素之間使用英文的逗號分隔
  • 列表中的元素可以是任意的數據類型
  • 字符串是不可變序列。
#(1)用 []直接創建列表
#語法:
列表名=[element1,element2...]#(2)用內置函數list()創建列表
#語法:
列表名=list(序列)#列表的刪除
#語法:
del 列表名
#直接使用[]創建列表
lst=['python','hello',888,3.14]
print(lst)#內置函數list()創建列表
lst2=list('pythonpyhton')
lst3=list(range(1,10,2))
print(lst2)
print(lst3)#列表是序列中的一種,對序列的操作,運算符,函數均可以使用
print(lst3+lst2)
print(lst3*3)
print(max(lst3))
print(min(lst3))
print(len(lst))print(lst2.index('y'))
print(lst2.count('o'))#列表的刪除
lst4=[10,20,30]
del lst4

enum函數

image.png

列表的遍歷操作有三種:

  • for循環
  • for循環+索引
  • enumerate
lst=['hello','linux','python','world']
#使用遍歷循環for遍歷列表元素
for item in lst:print(item)#使用for循環,range函數,len函數,根據索引遍歷
for i in range(0,len(lst)):print(i,'--->',lst[i])#enumerate函數
for index,item in enumerate(lst):print(index,item)
print('\n----------')
#手動修改序列號的起始值
for index,item in enumerate(lst,start=1):print(index,item)

列表類型

image.png

lst=['hello','linux','python','world']
print('原列表',lst,id(lst))
lst.append(100)
print('附加后',lst,id(lst))
lst.insert(2,'mysql')
print('指定增加',lst,id(lst))
lst.pop(1)  #這個1是索引
print('先取后刪',lst,id(lst))
# lst.remove('linux')
# print('指定刪除',lst,id(lst))
lst.reverse()
print('反轉后',lst,id(lst))
# lst.clear()
# print('全清后',lst,id(lst))
new_lst=lst.copy()  #會產生新列表對象
print(lst,id(lst))
print(new_lst,id(new_lst))#list的修改操作
lst[1]='mysql'
print(lst)

列表排序

image.png

lst=[1,5,8,10,6,88,3.14]
print('原列表',lst)
lst.sort()
print('升序',lst)
lst.sort(reverse=True)
print('降序',lst)
print('-'*30)
lst2=['a','d','c','B']
print('原列表',lst2)
#忽略大小寫。升序排序,先排大寫,再排消寫。降序反之
lst2.sort(key=str.lower)
print('升序',lst2)
print('-'*30)
#sorted內置函數會產生新列表對象
lst=[1,5,8,10,6,88,3.14]
print('原列表',lst)
#sorted內置函數會產生新列表對象
asc_lst=sorted(lst)
print('升序',asc_lst)
desc_lst=sorted(lst,reverse=True)
print('降序',desc_lst)

列表生成式

image.png

import random   #隨機導入數字
lst=[item for item in range(1,11)]
print(lst)lst=[item*item for item in range(1,11)]
print(lst)#random.randint()的用法:用于生成一個指定范圍內的隨機整數
lst=[random.randint(1,100) for item in range(10)]
print(lst)#從列表中選擇符合條件的元素組成新的列表
lst=[i for i in range(10) if i%2==0]
print(lst)

image.png

#創建二維列表
lst=[['城市','環比','同比'],['北京',100,101],['上海',102,103],['深圳',104,105]
]
print(lst)
#遍歷二維列表使用雙層for循環
for row in lst:     #行for item in row:    #列print(item,end='\t')print()
#列表生成式生成一個4行5列的二維列表
lst2=[[j for j in range(5)] for i in range(4)]
print(lst2)

3,元組

  • 是內置的不可變序列
  • 是python中使用()定義元組,element直接用英文的逗號隔開
  • 元組中只有一個元素的時候,逗號也不能省略

image.png

#使用小括號創建元組
t=('hello',[10,20,30],'python','linux',50)
print(t)#使用內置函數tuple創建元組
t=tuple('helloworld')
print(t)t=tuple([10,20,30])
print(t)#在序列中的應用
print('2在tuple中是否存在:',(10 in t))
print('2在tuple中是否存在:',(10 not in t))
print('min:',min(t))
print('max:',max(t))
print('t.index:',t.index(10))
print('t.count:',t.count(10))#如果元組只有一個element
x=(1)
print(x,type(x))
y=(1,)
print(y,type(y))#tuple的刪除
# del x
# print(x)

遍歷

t=('python','hello','world')
#根據索引訪問元組
print(t[1])#元組切片操作
t2=t[:3:2]
print(t2)#(1)元組的遍歷
for item in t:print(item)#(2)使用for+range+len
for i in range(len(t)):print(i,t[i])#使用enumerate
for index,item in enumerate(t):print(index,'--->',item)

tuple

#元組也有生成式,只不過元組的生成式是一個生成器對象,需要轉換成tuple或list才能查看。
t=(i for i in range(1,4))
print(t)
# t=tuple(t)
# print(t)
# #遍歷1
# for item in t:
#     print(item)
#遍歷2
print(t.__next__())
print(t.__next__())
print(t.__next__())
#都取完了,如果再打印就為空
t=tuple(t)
print(t)

4,字典

字典類型是根據一個信息查找另一個信息的方式構成了"鍵值對”,它表示索引|用的鍵和對應的值構成的成對關系。

字典為可變數據類型。其中鍵是不可變序列。字符串,整數,浮點,元組可以作為字典中的鍵,但是列表不行。

image.png

字典類型

image.png

#(1)創建字典
d={10:'cat',20:'dog',30:'pet',20:'zoo'}
print(d)    #key相同時,value值進行了覆蓋#(2)zip函數
lst1=[10,20,30]
lst2=['ls','cd','pwd','cs']
zipobj=zip(lst1,lst2)
print(zipobj)   #<zip object at 0x019AC1C8>
#print(list(zipobj)) #[(10, 'ls'), (20, 'cd'), (30, 'pwd')]
d=dict(zipobj)
print(d)    #{10: 'ls', 20: 'cd', 30: 'pwd'}#使用參數創建dict
d=dict(cd=1,ls=2)
print(d)    #左側為key,右側為valuet=(10, 20,30)
print({t:10}) # t是key, 10是value , 元組是可以作為字典中的key#字典屬于序列
print('max:',max(d))
print('min:',max(d))
print('len:',len(d))    #看的是元素的個數#刪除 
del d

image.png

取值與遍歷

image.png

d={'hello':10,'world':20,'python':30}
#訪問字典中的元素
#(1)使用d[key]
print(d['python'])
#(2)d.get(key)
print(d.get('hello'))#二者之間是有區別的,如果key不存在,d[key]報錯d.get(key)可以指定默認值
print(d.get('java','不存在'))#dict遍歷
for item in d.items():print(item) #key=value組成的一個元素
#在使用for遍歷時,分別獲取key,value
for key,value in d.items():print(key,value)

相關操作

image.png

d={'hello':10,'world':20,'python':30}
print(d)
#添加
d['linux']=40
print(d)#獲取dict中所有的key
key=d.keys()
print(key)
print(list(key))
print(tuple(key))#獲取字典中所有的value
values=d.values()
print(values)
print(list(values))
print(tuple(values))#如何將字典中的數據轉側灰姑娘鍵值對的形式,以元組的形式展示
lst=list(d.items())
print(lst)

空字典,空元組,空列表為False

字典生成式

image.png

import random
d={item:random.randint(1,100) for item in range(4)}
print(d)#創建兩個列表
lst1=[1001,1002,1003]
lst2=['hello','world','python']
d={key:value for key,value in zip(lst1,lst2)}
print(d)

5,集合

  • Python中的集合與數學中集合的概念一致
  • Python中的集合是一個無序的不重復元素序列
  • 集合中只能存儲不可變數據類型
  • 在Python中集合使用{}定義
  • 與列表、字典一樣,是Python中的可變數據類型

集合類型

image.png

#{}直接創建集合
s={10,20,30}
print(s)#使用set()創建集合
s=set() #創建空集合
print(s)s={}#創建的是字典
print(s,type(s))s=set('helloworld')
print(s)s2=set([10,20,30])
print(s2)s3=set(range(1,10))
print(s3)
#集合屬于序列的一種,可以用序列測試
#max,min,len,in ,not in#刪除
del s3

操作符

image.png

A={10, 20,30, 40, 50}
B={30, 50,88, 76, 20}
print(A&B)

相關操作

image.png

A={10, 20,30, 40, 50}
#A.add(100)
#A.remove()
# A.clesr
# print(A)#集合遍歷
for item in A:print(item)for index,item in enumerate(A):print(index,'-->',item)pass#生成式
s={i for i in range(1,10)}
print(s)s={i for i in range(1,10) if i%2==1}
print(s)

image.png

6,練習題

image.png

image.png

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43937.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

升級之道:精通Conda的自我升級藝術

升級之道&#xff1a;精通Conda的自我升級藝術 引言 Conda是Python和其他科學計算語言的強大包管理器&#xff0c;它不僅管理著包的安裝和依賴&#xff0c;還負責自身的更新。隨著開源社區的不斷發展&#xff0c;Conda定期發布新版本以修復已知問題、增加新功能和提高性能。本…

[面試愛問] https 的s是什么意思,有什么作用?

HTTPS 中的 "S" 代表 "Secure"&#xff0c;即安全的意思。HTTPS&#xff08;全稱是 HyperText Transfer Protocol Secure&#xff09;是HTTP&#xff08;HyperText Transfer Protocol&#xff09;的安全版本&#xff0c;主要作用是為互聯網通信提供安全保護…

靈活多變的對象創建——工廠方法模式(Python實現)

1. 引言 大家好&#xff0c;又見面了&#xff01;在上一篇文章中&#xff0c;我們聊了聊簡單工廠模式&#xff0c;今天&#xff0c;我們要進一步探討一種更加靈活的工廠設計模式——工廠方法模式。如果說簡單工廠模式是“萬能鑰匙”&#xff0c;那工廠方法模式就是“變形金剛”…

生成式人工智能:助攻開發者還是取代開發者?

引言 近年來&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;在軟件開發領域掀起了一場革命&#xff0c;為開發者帶來了全新的工具和可能性。從代碼生成、錯誤檢測到自動化測試&#xff0c;AI正在以各種方式改變著開發者的工作方式。然而&#xff0c;這也引發了人們對開…

Python采集京東標題,店鋪,銷量,價格,SKU,評論,圖片

京東的許多數據是通過 JavaScript 動態加載的&#xff0c;包括銷量、價格、評論和評論時間等信息。我們無法僅通過傳統的靜態網頁爬取方法獲取到這些數據。需要使用到如 Selenium 或 Pyppeteer 等能夠模擬瀏覽器行為的工具。 另外&#xff0c;京東的評論系統是獨立的一個系統&a…

offer題目33:判斷是否是二叉搜索樹的后序遍歷序列

題目描述&#xff1a;輸入一個整數數組&#xff0c;判斷該數組是不是某二叉搜索樹的后序遍歷結果。如果是則返回true,否則返回false。假設輸入的數組的任意兩個數字都互不相同。例如&#xff0c;輸入數組{5,7,6,9,11,10,8},則返回true,&#xff0c;因為這個整數是下圖二叉搜索樹…

c++內存管理(上)

目錄 引入 分析 說明 C語言中動態內存管理方式 C內存管理方式 new/delete操作內置類型 new和delete操作自定義類型 引入 我們先來看下面的一段代碼和相關問題 int globalVar 1; static int staticGlobalVar 1; void Test() { static int staticVar 1; int localVar 1…

集訓day3:并查集

一、目錄 1.并查集模版 2.并查集的理解和應用 二、正文 1.并查集模版 P3367 【模板】并查集 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 2.并查集的理解與應用 (1).并查集與聯通塊數量 P1197 [JSOI2008] 星球大戰 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) P1656 炸…

數圖助推朝陽佳惠遼寧華聯開啟數字化導航、精細化管理新紀元!

近期&#xff0c;遼寧省著名零售企業朝陽佳惠與遼寧華聯&#xff0c;秉持創新精神&#xff0c;大膽嘗試&#xff0c;在品類空間管理方面推出了創新舉措。引入了先進的數圖可視化陳列管理系統&#xff0c;通過智能化、直觀化的方式優化商品布局。此舉不僅大幅提高了商品管理的效…

去除各種軟件彈窗教程

清羽彈窗 在mutil/OnlineDialog/onPostExecute前 添加return-void Arm彈窗 第一步&#xff0c;提取安裝包 第二步&#xff0c;搜索代碼Ljava/io/DataOutputStream;->flush()V 第三步&#xff0c;往上看找到 .registers 10 在下面加return-void 云注入彈窗 第一種方法:dex搜…

Sql 導入到 Excel 工具

Sql 導入到 Excel 工具 這個VBA宏的步驟如下&#xff1a; 通過文件對話框選擇SQL文件。讀取文件內容。解析文件中的每一行&#xff0c;如果包含“insert into”&#xff0c;則提取表名。檢查是否已經存在以表名命名的工作表&#xff0c;如果不存在則創建新的工作表。將數據插…

element-ui封裝分頁組件:實現首頁、上一頁、下一頁、末頁、跳轉按鈕

首頁、上一頁、下一頁、末頁、跳轉按鈕 因為el-pagination只有一個插槽&#xff0c;所以通過兩個el-pagination插槽分別加入首頁、末頁按鈕&#xff0c;再拼接這兩個el-pagination的方式來實現首頁、末頁按鈕跳轉按鈕不用加事件&#xff0c;如果el-pagination修改了前往的頁數…

【work】AI八股-神經網絡相關

Deep-Learning-Interview-Book/docs/深度學習.md at master amusi/Deep-Learning-Interview-Book GitHub 網上相關總結&#xff1a; 小菜雞寫一寫基礎深度學習的問題&#xff08;復制大佬的&#xff0c;自己復習用&#xff09; - 知乎 (zhihu.com) CV面試問題準備持續更新貼 …

VOI(Virtual Operating System Infrastructure,虛擬操作系統基礎架構)

VOI&#xff08;Virtual Operating System Infrastructure&#xff0c;虛擬操作系統基礎架構&#xff09;架構在桌面虛擬化領域具有其獨特的優勢&#xff0c;使得它在某些場景下表現尤為出色。以下是幾個具體場景&#xff1a; 1. 重載性能需求場景 表現&#xff1a; 高效利用…

聚類分析方法(二)

目錄 三、層次聚類方法&#xff08;一&#xff09;層次聚類策略&#xff08;二&#xff09;AGNES算法&#xff08;三&#xff09;DIANA算法 四、密度聚類方法&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;算法描述&#xff08;三&#xff09;計算實例&#xf…

Google賬號輸入用戶名和密碼后提醒要到手機通知點是,還要點擊數字,但是我手機收不到

有一些朋友換了一個新的電腦后手機登錄谷歌賬號時&#xff0c;用戶名和密碼都正確輸入以后&#xff0c;第三步彈出一個提示&#xff0c;要在手機上的通知欄點擊是&#xff0c;并且點擊手機上相應的數字才能繼續登錄。 但是自己的手機上下拉通知欄卻沒有來自谷歌的通知&#xf…

ADOQuery 查詢MSSQL存儲過程一個莫名其妙的錯誤;

在 SSMS 中執行完成正常的的存儲過程。 也能正常的返回想要的數據&#xff0c;&#xff0c;然后通過 ADO 查詢時&#xff0c;總是提法 某 字段不存在的問題&#xff1b; 此問題困擾了一天。 例如&#xff08;當然&#xff0c;實際數據結構比下面舉例的復雜&#xff09;&…

C++八股(二)之C++11新特性

一、C++11有什么新特性?? 自動類型推導(Type Inference):引入了 auto 關鍵字,允許編譯器根據初始化表達式的類型自動推導變量的類型。統一的初始化語法(Uniform Initialization Syntax):引入了用花括號 {} 進行初始化的統一語法,可以用于初始化各種類型的對象,包括基…

符號同步、定時同步和載波同步

符號同步、定時同步和載波同步是通信系統中重要的同步技術&#xff0c;它們各自承擔著不同的功能和作用。以下是對這三種同步技術的詳細解釋&#xff1a; 符號同步 定義&#xff1a; 符號同步&#xff0c;也稱為定時恢復或時鐘恢復&#xff0c;是指在數字通信系統中&#xff…

繼承關系中的訪問控制

繼承關系中的訪問控制 類中成員的訪問權限類繼承中的訪問權限派生類向基類轉換的權限問題&#xff08;向上轉型&#xff09;友元在繼承中的訪問權限 類中成員的訪問權限 public&#xff1a;類的對象&#xff08;外部&#xff09;可以訪問&#xff0c;派生類也可以訪問protecte…