1. 程式人生 > >Python基礎知識1:列表list、集合set

Python基礎知識1:列表list、集合set

1、列表list

列表的資料項不需要具有相同的型別

1)建立列表:

只要把逗號分隔的不同的資料項,且使用[]括起來,比如:

list=[]

list1 = ['physics', 'chemistry', 1997, 2000];

2)索引:

從0開始,可以使用負下標;0第一個元素,-1最後一個元素,索引顧頭不顧尾

-len第一個元素,len-1最後一個元素

列表可以進行擷取、組合等。

3)常見方法

列表操作包含以下函式:
1、cmp(list1, list2):比較兩個列表的元素
2、len(list):列表元素個數
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):將元組轉換為列表
列表操作包含以下方法:


1、list.append(obj):在列表末尾新增新的物件
2、list.count(obj):統計某個元素在列表中出現的次數
3、list.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表)
4、list.index(obj):從列表中找出某個值第一個匹配項的索引位置
5、list.insert(index, obj):將物件插入列表
6、list.pop(obj=list[-1]):移除列表中的一個元素(預設最後一個元素),並且返回該元素的值
7、list.remove(obj):移除列表中某個值的第一個匹配項
8、list.reverse():反向列表中元素
9、list.sort([func]):對原列表進行排序

#案例:
list = ["a", "b,", "c", 1, 2, 3, 4, 5]
print('原始列表:',list)
print('--------------------------')
print('取第一個值:',list[0])
print('取最後一個值:',list[-1])
print('取前5個值:',list[:5])
print('取後5個值:',list[-5:])
print('取出列表中第3-8的值',list[2:7])
print('計算元素個數:',len(list))
print('統計某個元素如a在列表出現的次數',list.count("a") )
print('-----------------------'
)
#追加元素
list.append("m")
print('增加一個元素後:',list)
#追加列表
list3=[7,8,9]
list.extend(list3)
print("末尾追加一整個列表",list)
#插入元素
list.insert(2, "n")#指定位置的地方插入位置
print('2位置插入元素',list)
#刪除元素
list.pop() # 預設刪除最後一個元素
print('刪除最後一個元素',list)
#按位置刪除
del list[-3] # 刪除倒數第三個
print('刪除倒數第三個',list)
#刪除特定元素
list.remove("a") # 刪除元素a
print('刪除特定元素,比如a:',list)
#反轉元素
list.reverse()
print('反轉元素',list)
#加備註
list[0]='a(組長)'
print('把第一個名字加上組長備註:',list)
print('-------------------------')
#排序
list=[6,7,3,4,5,8]
print('排序前',list)
list.sort() # 返回
print('排序後',list)
print('返回列表的最大值',max(list))#需要列表是數值
執行結果:

0?wx_fmt=png

4)案例

案例1:修改列表中的某一元素

list = ["a", "b,", "c", 1, 2, 3, 4, 5, 4, 4]
for i in range(list.count(4)): # 設定迴圈次數
   
index_num = list.index(4) # 每次迴圈定位元素
   
list[index_num] = 444444  # 如果要刪除,就可以直接改成值,del list[index_num]
print(list)

執行結果:['a', 'b,', 'c', 1, 2, 3, 444444, 5, 444444, 444444]

案例2:判斷列表中是否存在一個元素

list = ["a", "b,", "c", "d", "f", "f", "g", "h,", "i"]  # 寫一個列表
if "f" in list: # 判斷是否存在一個元素
   
cnt = list.count("f")
print("{0}個f".format(cnt))

執行結果:2個f

案例3:列表遍歷

list = ["a", "b,", "c", "d", "f", "f", "g", "h,", "i"]  # 寫一個列表
for element in list:
print(element)

執行結果:

0?wx_fmt=png

案例4:隔行取值

list = ["a", "b,", "c", "d", "f", "f", "g", "h,", "i"]  # 寫一個列表

print(list[0:-1:2])  #隔行取值,取值不含最後一個

print(list[0::2])  #隔行取值,取值含最後一個

執行結果:

0?wx_fmt=png

案例5:enumerate同時獲取索引、值

list=["a","b,","c","d"]#寫一個列表
for index,value in enumerate(list):
print("index:{0},value{1}".format(index,value))

執行結果:

0?wx_fmt=png

案例6:深淺copy的應用,淺copy只克隆第一層資料,不克隆第二層資料;深copy是完全克隆一份;

import copy
list=["a","b,","c",[1,2,3,4]] #這個list有兩層資料,其中a、b、c在第一層,[1,2,3,4]為第二層
list2=list.copy() #當copy的時候

#淺copy只克隆第一層資料,不copy第二層資料,因為第二層資料本身就存在單獨的地址;
#當list改變第一層資料時,不會再影響list2的第一層資料
# 當引用或更改第二層資料時,兩個資料來源list和list2都向第二層原有的地址,都會改變;
list[0]="A"#會引起第一層資料的變化,只改變list
list[3][2]=222#會引起第二層資料的變化,list和list2都會改變
print(list) #執行結果:['A', 'b,', 'c', [1, 2, 222, 4]]
print(list2)#執行結果未改變a:['a', 'b,', 'c', [1, 2, 222, 4]]

#即使list2去改變第二層資料,list、list2的第二層資料都會
list2[3][3]="e" #淺copy,同時改變list
print(list)#['A', 'b,', 'c', [1, 2, 222, 'e']]
print(list2)#['a', 'b,', 'c', [1, 2, 222, 'e']]
#deepcopy是完全克隆一份,新資料來源和原來的資料來源已無關係
list4=copy.deepcopy(list)
list[1]="B"
list4[3][3]="d"
print(list)#['A', 'B', 'c', [1, 2, 222, 'e']]
print(list4)#['A', 'b,', 'c', [1, 2, 222, 'd']]

2、集合

集合類似於列表,但集合裡面會把重複的元素去除,

集合的特點是無序,不重複;

一、建立集合方法:

1)直接寫值法s1={11,22}

2)建立一個空集合set()

3)直接從列表中取

s=set()

li=[11,22,33,4,33]

s=set(li)

print(s)

如果看什麼型別:

print(type(se))#<class 'set'>

二、操作集合的方法

1、建立、增加、刪除集合

print('----------建立集合-----------------')
#建立集合s1
A=set('boy')
print('集合A',A)#會把所有元素拆開
#建立集合B
li=['a','b','c','d','e']
B=set(li)
print('集合s2',B)
print('-----------增加元素----------------')
#add方法增加元素,但是元素的位置不固定
A.add('python')
print('用add使A增加元素:',A)
#update增加多個元素
B.update([10,37,42]) # 在s中新增多項
update需要一個可以for迴圈的東西,比如字元,列表、元祖
print('用update使B增加多個元素:',B)
li=("mlh")
A.update(li)
print('用update使B增加多個元素:',A)
print('-----------刪除元素----------------')
#discard移除元素,若元素不存在,也不報錯
A.discard('python')
print('discard移除不報錯:',A)
B.pop()#隨機移除一個元素
print('pop隨機移除',B)
A.remove("b")#移除元素,若元素不存在,則報錯
print('remove移除,不存在會報錯',A)
執行結果:

0?wx_fmt=png

2、difference比較異同

A=set('abc')
B=set('bcef')
print(A,B)
#A中存在,B中不存在
print("A中存在,B中不存在:",A.difference(B))
#B中存在,A中不存在
print("B中存在,A中不存在:",B.difference(A))
#A、B非共同存在的
print("A、B非共同存在的:",A.symmetric_difference(B))
#把A中存在,B中不存在的結果更新給A,且替換A
A.difference_update(B)
print('把A中存在,B中不存在的結果更新給A,且替換掉A',A)
執行結果:

0?wx_fmt=png

3、集合支援一系列標準的操作

  • a = t | s   # t 和 s的並集  ,s.union(t)  

  • b = t & s   # t 和 s的交集  

  • c = t – s   # 求差集(項在t中,但不在s中)  

  • d = t ^ s   # 對稱差集。項在t或s中,但不會同時出現在二者中symmetric_difference(t) 

  • x in s #測試 x 是否是 s 的成員  

  • x not in s  #測試 x 是否不是 s 的成員  

  • s.issubset(t)  #s <= t 測試是否 s 中的每一個元素都在 t 中 

  • s.issuperset(t)  #s >= t ,測試是否 t 中的每一個元素都在 s 中  

print('----------集合標準操作-----------------')
t={11,22,33}
s={11,22,55}
print('t',t)
print('s',s)
print("交集",t&s)
print("並集",t|s)
print("差集,在t中不在s中",t-s)
print("對稱差集,不會同時在s、t中",t^s)
if 22 in s :
print ("22 in s中")
#完全包含
print(s.issubset(t))
print(s.issuperset(t))

0?wx_fmt=png

集合應用案例:

def edits1(word):
n=len(word)
#迴圈刪除一個字元,比如the,s1為[th,he,te]
   
s1=[word[0:i]+word[i+1:] for i in range(n)]
#調換一次位置,比如the,[hte,teh]
   
s2=[word[0:i]+word[i+1]+word[i]+word[i+2:] for i in range(n-1)]
#替換一個字元
   
s3=[word[0:i]+c+word[i+1:] for i in range(n) for c in alphabet]
#插入一個字元
   
s4=[word[0:i]+c+word[i:] for i in range(n+1) for c in alphabet]
return set(s1+s2+s3+s4)
#執行
p=edits1('the')
print(p)
執行結果:

0?wx_fmt=png

程式連結:https://pan.baidu.com/s/1hs3tcdY 密碼:d2z0

相關推薦

第二篇 python基礎知識總結數據運算符

pre http 賦值 float 異或 mage IT ext inpu   引子 我們跟任何人交流,說的每一句都是都一些文字組成,包含名詞、動詞、語句、標點符號等,組成我們說普通話構成的基本要素。同理我們學習python語言也要明白這些基本要素,也就是我們常說的

python基礎《四列表元組字典》

''' 字典用法擴充套件: 用字典對映簡單的switch case 語句 其他語言中有switch case用法,但是python中沒有,不過可以用字典對映來代替 如下: ------------------虛擬碼分割線------------------ # 功能:實現輸入數字0-7,打印出相應的英文星期幾

Python-基礎知識-數據類型變量和常量

規則 特殊 數學 不同類 pre cep rom 不能 布爾值 一、數據類型 在Python中,能夠直接處理的數據類型有以下幾種: 1、整數 2、浮點數 3、字符串   字符串是以單引號‘或雙引號"括起來的任意文本,比如‘abc‘,"xyz"等等。請註意,‘‘或""本身只是

Python基礎知識之基本類型循環

必須 組成 長度 字典 odi clas 代碼 string first 1.python基本類型有:數字、字符串、列表、元組、字典。 (1)數字類型有如下類型: int(有符號整型) long(長整型[也可以代表八進制和十六進制]) float(浮點型

Python基礎知識hello world,註釋,變量,數據類型

我們 重要 一個 yield code oba () turn 編程語言   從接觸編程語言以來,在我腦海裏經常有三個問號: 這是什麽? 這個有什麽用? 這個怎麽用?   我覺得初學一個東西,把這三個問號都搞明白,那麽剩下的就是孰能生巧的過程了,在接下來的博客中,每個知

python基礎知識回顧之列表

在python 中,主要的常用資料型別有列表,元組,字典,集合,字串。對於這些基礎知識,應該要能夠足夠熟練掌握。 如何建立列表: # 建立一個空列表:定義一個變數,然後在等號右邊放一箇中括號,就建立了一個空列表。 a1=[] # 建立一個有元素的列表:定義一個變數,然後在中括號中放

Python基礎知識 1

運算子: /  : 除法,返回的是一個小數 4/2=2.0 // : 地板除   5//2=2 **:冪運算  2**3=8 變數名: 變數名必須為字母或者下劃線開頭 1.現在是凌晨0:0:0,過了59000秒後。求現在

Python基礎學習二列表,字典,深拷貝與淺拷貝

④使用pop()方法刪除元素:pop方法用於移出列表中的一個元素(預設是最後一個元素),可以指定元素索引,並且返回該元素的值。     使用del語句刪除元素:如果知道要刪除的元素在列表中的位置,可使用del語句刪除元素,元素一旦被刪除之後就再也無法訪問。  

python基礎知識整理5——類方法靜態方法和繼承相關問題

類方法和靜態方法 method - 通過例項呼叫 - 可以引用類內部的任何屬性和方法 classmethod - 無需例項化 - 可以呼叫類屬性和類方法 - 無法取到普通的成員屬性和方法 staticmethod - 無需例項化 - 無法渠道類內部的任何

【一起來學React】- React基礎知識補充(列表渲染條件渲染JSX語法)

本章節為react基礎知識的補充,我今天看了一下,發現react的基礎知識大致能通過我之前的幾張來講解的差不多了,但是不夠細,還有一些,只講了一個概念,所以這一章節來進行一個補充吧! 列表渲染 react的列表渲染不和vue或者ng一樣,有指令的,react完全靠j

Python基礎知識1——py /pyc/pyo

py是源程式  pyc是編譯後的程式。 在執行python源程式時,python會自動將源程式編譯成為pyc檔案。pyc是一種二進位制檔案,是由py檔案經過編譯後,生成的檔案,是一種byte code,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是一種跨平臺的位元組碼,

概率論基礎知識整理概率分佈邊緣/條件概率期望協方差

一、概率分佈 離散型變數的概率分佈可以用 概率質量函式(probability mass function, PMF) 來描述。我們通常用大寫字母 P 來表示概率質量函式。通常每一個隨機變數都會有 一個不同的概率質量函式,並且讀者必須根據隨機變數來推斷所使用的 PMF,而不 是根據函式的名稱來推

python基礎系列二列表

#-----------------------------------------建立列表------------------------------------------# 定義# 直接定義nums = [1,2,3,4,5] # 通過range函式構造,python2 和python3 版本之間的差

python第7天列表(list)型別詳細操作

Python包含 6 中內建的序列,包括列表、元組、字串、Unicode字串、buffer物件和xrange物件,昨天說的字串就是序列之一,今天我們來說說列表 序列都可以進行的操作包括索引,切片,加,乘,檢查成員。所以list作為序列中的一員,同樣有這樣的屬性 定義:ali

Python小技巧 1列表項的拼接

典型程式碼:data_list = ['a', 'b', 'c', 'd', 'e', 'f'] separator = '\t' data_joined = separator.join(data_list) print(data_joined)其輸出為:a b c d e

day4-python基礎知識 <元組&&集合>

元組 tuple 定義:值不可修改,只可用下標讀取內容的一種資料序列列表。中括號標識 用處:開發中,防止他人修改自己的程式碼。 怎麼定義? # -僅一個元素的元組,不加逗號,就是個int型別數值 a = (1) 《==》a = 1 print(type(a)) # <class 'int

python學習筆記5列表-元組-集合-字典

list列表 一組有順序的資料的組合,可進行增刪改查 賦值操作 ls = list() ,ls = [] 下標從0開始,最後一個數可使用-1訪問,依次類推 可使用其切片操作[:],反序排列[::-1] 進行切片和copy()後的新list的ID原id不一致

python基礎資料型別3 字典dict與集合set

1. 字典 dict dic = {'鍵':'值'} 鍵: 不可變資料, 可雜湊是不可變, 不可雜湊是可變 不能重複 值: 隨意 增: dic['鍵'] = '值'dic.setdefault('鍵') # 檢視dic.setdefault('鍵','值') # 先檢視返回None的時候 進行新增 返

Python基礎知識列表list

基礎知識 沒有 sort 一個 技術分享 img 列表方法 ted 知識點 知識點:   1、列表是可變數據類型--可以改變元素的值   2、sort沒有返回值,sorted有返回值   3、更新數據項       索引賦值:不能超過索引範圍       分片賦值:可以同