<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
列表是元素的集合,儲存在一個變數中。
列表中儲存的元素型別沒有限制,根據需要動態分配和回收記憶體
列表中的每個元素都會分配一個數位用來表示它的位置(索引),第一個索引是 0,第二個索引是 1,依此類推。
列表的資料項不需要具有相同的型別
列表可以儲存重複資料
建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"]
與字串的索引一樣,列表索引從 0 開始。列表可以進行擷取、組合等。
列表中元素的型別的多樣性
a_list=['lemon', 100, ['a', 'b', 'c', 'd'], True]#同一個list的型別可以是字串,整型,布林型(true和false),以及巢狀的lis
使用下標索引來存取列表中的值,同樣你也可以使用方括號的形式擷取字元,如下所示:
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7] print("list1[0]: ", list1[0]) # list1[0]: physics # 巢狀列表 list1 = ['physics', 'chemistry', 1997, 2000,[1,2,3,4,5]] print("list1[0]: ", list1[4][0]) # list1[0]: 1
print(a[1:3]) #按下標0開始,不包括最右邊的3 print(a[1:]) #1以及之後的全部 print(a[:3]) #3之前的但不包括3 print(a[:]) #所有 print(a[::2])#[start:end:step]start和end為空的時候,預設是全選,step為空時預設是1,這個表示的是從索引為0開始,以步長為2來選擇元素 print(a[1:3:2])#以索引為1開始,索引3結束,步長為2來選擇元素 print(a[::-1])#當step為-1時,將列表進行了逆序排序 print(a[::-2])#將列表進行了逆序排序,步長為2來選擇元素
修改列表中的元素需要使用索引表示將指定索引位置的元素進行重新賦值。
list1 = ['physics', 'chemistry', 1997, 2000] list1[0]= 'maths' print("list1[0]: ", list1[0]) # list1[0]: maths
移除列表中的元素,可以通過 del 語句,通過索引號指定要刪除的元素物件。
list1 = ['physics', 'chemistry', 1997, 2000] del list1[0] print("list1[0]: ", list1[0]) # list1[0]: chemistry
print('列表相加:', [1, 2, 3] + [4, 5, 6])# 列表相加: [1, 2, 3, 4, 5, 6]
print('列表相乘:', ['a', 'b']*3) # 列表相乘: ['a', 'b', 'a', 'b', 'a', 'b']
print('判斷列表元素是否存在於列表中:', 'a' in ['a', 'b']) # True print('判斷列表元素是否存在於列表中:', 'a' not in['a', 'b']) # Falue
python 迭代列表中元素,主要有三種方式,具體如下:
第一種方法(直接)
list1 = ['physics', 'chemistry', 1997, 2000] for item in list1: print(item)
或者
names = ['james', 'michael', 'emma', 'emily'] index = 0 #通過while迴圈來列出所有元素 while index < len(names): print(names[index]) index += 1
第二種方法range
藉助 range 和 len 內建函數,通過元素索引遍歷列表元素;
list1 = ['physics', 'chemistry', 1997, 2000] for i in range(len(list1)): print(i, list1[i])
第三種方法enumerate
通過內建列舉函數 enumerate 直接獲取遍歷的索引和元素;
list1 = ['physics', 'chemistry', 1997, 2000] for i, item in enumerate(list1): print(i, item)
列表推導式
列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式,使用列表生成式可以節省很多行程式碼
語法結構如下:
# 普通的生成式
[表示式 for 變數 in 舊列表]
# 加條件的生成式
[表示式 for 變數 in 舊列表 if 條件]
# if...else條件的生成式
[表示式 if 條件1 else 條件2 for 變數 in 舊列表]
過濾掉名詞字母長度不足4的名字,範例程式碼如下:
names = ["Tom", "Lily", "Jack", "Steven", "Bod"] # 在不是用列表生成式的過程 news_names = [] for name in names: if len(name) > 3: news_names.append(name) print(news_names) # ['Lily', 'Jack', 'Steven'] # 使用列表生成式 new_names = [name for name in names if len(name) > 3] print(new_names) # ['Lily', 'Jack', 'Steven']
將1-100的整數可以被3和5整除的數位組成一個新的列表, 範例程式碼如下所示:
# 舊方法 number_list = [] for i in range(101): if i % 3 == 0 and i % 5 == 0: number_list.append(i) print(number_list) # [0, 15, 30, 45, 60, 75, 90] # 列表生成式 new_num_list = [i for i in range(101) if i % 3 == 0 and i % 5 == 0] print(new_num_list) # [0, 15, 30, 45, 60, 75, 90]
將0到10的奇數和0到5的偶陣列成一個不重複的列表,範例程式碼如下所示:
# 將0到10的奇數和0到5的偶陣列成一個不重複的列表 # 舊方法 news_number_list = [] for x in range(10): if x % 2 != 0: for y in range(5): if y % 2 == 0: news_number_list.append([x, y]) print(news_number_list) # [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]] # 新方法 news_num_list = [[x, y] for x in range(10) if x % 2 != 0 for y in range(6) if y % 2 == 0] print(news_num_list) # [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]
將列表中的數位大於8000的加200 小於等於8000的加500,範例程式碼如下:
# 將列表中的數位大於8000的加200 小於等於8000的加500 number = [5000, 10000, 4500, 80000, 12000] # 舊方法 for i in number: if i > 8000: i += 200 else: i += 500 print(number) # [5500, 10200, 5000, 80200, 12200] # 新方法 new_number = [i + 200 if i > 8000 else i + 500 for i in number] print(new_number) # [5500, 10200, 5000, 80200, 12200]
len() 方法返回列表元素個數。
print(len([1, 2, 3])) # 3
append() 方法用於在列表末尾新增新的物件。
food=['egg', 'fish', 'cake', 'tomato'] food.append('ice') #在list的末尾新增元素 print(food)
insert() 函數用於將指定物件插入列表。
food=['egg', 'fish', 'cake', 'tomato'] food.insert(1, 'meat') #在1這個位置新增元素 print(food)
pop() 函數用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值。
food=['egg', 'fish', 'cake', 'tomato'] food.pop() #刪除list末尾的元素 print(food) food.pop(2) #刪除索引2的元素 print(food)
定義 remove() 方法具有指定值的首個元素,如果有重複,刪除的是第一次出現的元素,如果元素不存在會報錯
list2 = [1, 2, 4, 5, 7, 4] list2.remove(4)#從列表中找出第一個數值為4的值然後刪除,不管第二個 print('remove:', list2)
count()方法返回元素出現次數
fruits = ['apple', 'banana', 'cherry'] number = fruits.count("cherry") print(number)
定義 extend()方法將列表元素(或任何可迭代的元素)新增到當前列表的末尾
list1 = [1, 3, 3, 4, 5] list2 = [6, 5, 8, 9] list1.extend(list2) #在列表1後面新增列表2 print(list1)
定義 index()方法返回該元素最小索引值(找不到元素會報錯)
list2 = [1, 2, 4, 5, 7, 4] print('index:', list2.index(4)) # 從列表中找出第一個數值為4的索引位置,不管第二個
從小到大排序,型別不能混 ,使用的是ASCII值進行排序
list2 = [1, 2, 4, 5, 7, 4] list2.sort()#對原列表進行排序 print('sort;', list2)
定義reverse() 方法反轉元素的排序順序
fruits = ['apple', 'banana', 'cherry'] fruits.reverse() print(fruits)
定義 clear()方法清空列表所有元素
list2 = [1, 2, 4, 5, 7, 4] list2.clear() print(list2)
定義 copy()方法返回指定列表的副本 ,如果某個元素是參照型別那麼複製的就是這個元素的地址
fruits = ['apple', 'banana', 'cherry', 'orange'] c = fruits.copy() print(c
使用用deepcopy()方法,才是真正的複製了一個全新的列表,包含原列表內部的參照型別
import copy old = [1,[1,2,3],3] new = copy.deepcopy(old)
注意: 使用深淺拷貝需要匯入copy模組,因為深拷貝要拷貝的元素跟多,所以速度會遠不如淺拷貝,在程式設計的過程中要注意避免造成多餘的系統負擔;
到此這篇關於Python入門之列表用法詳解的文章就介紹到這了,更多相關Python 列表內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45