這篇文章主要講解了“Python列表的創(chuàng)建和轉(zhuǎn)換方式”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python列表的創(chuàng)建和轉(zhuǎn)換方式”吧!
復(fù)興ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!本篇Python學(xué)習(xí)教程跟大家講一下Python中的容器。Python容器包括列表、元組、集合與字典。這些數(shù)據(jù)結(jié)構(gòu)中都涉及到很多的方法,這里對比較常用的一些方法進(jìn)行介紹,不用每個(gè)方法都記住,熟悉常用的即可。
首先,我們先來看列表。
一、列表的創(chuàng)建方式
# -*- coding: utf-8 -*- # __author : Demon # date : 1/16/18 8:19 PM # 列表的創(chuàng)建 empty_list_01 = [] # 創(chuàng)建一個(gè)空的列表 empty_list_02 = list() # 創(chuàng)建一個(gè)空的列表 num_list = [1, 2, 3, 4, 5] # 創(chuàng)建一個(gè)數(shù)字列表 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 mix_list = [1, 'a', 'abc'] # 一個(gè)列表中可包含元素類型不是固定的 nest_list = [num_list, str_list, mix_list] # 列表可以嵌套 print(num_list) # [1, 2, 3, 4, 5] print(str_list) # ['a', 'b', 'c'] # 由打印結(jié)果可以看出列表的存儲是有順序的 # 即怎么存的就怎么取 print(num_list[0]) # 列表接受下標(biāo)訪問,類似于JAVA中的數(shù)組 1 print(num_list[1]) # 列表接受下標(biāo)訪問,類似于JAVA中的數(shù)組 2 print(num_list[2]) # 列表接受下標(biāo)訪問,類似于JAVA中的數(shù)組 3 print(num_list[3]) # 列表接受下標(biāo)訪問,類似于JAVA中的數(shù)組 4 print(num_list[4]) # 列表接受下標(biāo)訪問,類似于JAVA中的數(shù)組 5 # 一旦超出長度,就會拋出異常 # print(num_list[5]) # IndexError: list index out of range
二、列表中的常用操作
# -*- coding: utf-8 -*- # __author : Demon # date : 1/16/18 8:19 PM # 1. 列表的循環(huán)方式【重要】 num_list = [1, 2, 3, 4, 5] # 創(chuàng)建一個(gè)數(shù)字列表 for num in num_list: print(num, end="") # 123456 print() # 2. 求長度 num_list = [1, 2, 3, 4, 5] # 創(chuàng)建一個(gè)數(shù)字列表 print(len(num_list)) # 5 # 3. 判斷列表是否為空【重要】 empty_list = list() num_list = [1, 2, 3] # 利用非0即True的原則【推薦方法】 if not empty_list: # 如果列表為空 print("The list is empty") else: print("The list is not empty") # 利用長度 if not len(num_list): print("The list is empty") else: print("The list is not empty") # 4. 判斷元素是否存在【重要】 num_list = [1, 2, 3] if 2 in num_list: print("in") else: print("not in") # 5. append(ele) 尾端添加元素 empty_list = [] # 創(chuàng)建一個(gè)空的列表 for s in "Hello": empty_list.append(s) print(empty_list) # ['H', 'e', 'l', 'l', 'o'] # 上述代碼也是將字符串轉(zhuǎn)換為列表的一種方式,只是代碼比較復(fù)雜 # 6. 列表切片的用法,如字符串切片的用法類似【重要】 # 用法 list[start:end:step] # start可省略,默認(rèn)值為0 # end可省略,默認(rèn)為大長度 # step可省略,默認(rèn)為1 # 范圍是[start, end),即左閉右開 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 # 獲取整個(gè)list, ['a', 'b', 'c'] print(str_list[::]) print(str_list[0:]) print(str_list[:3]) print(str_list[:200]) # 長度超出時(shí),不會報(bào)錯(cuò) # 獲取部分 print(str_list[0:2]) # ['a', 'b'] print(str_list[0:2:2]) # ['a'] # 7.sort排序【重要】 # 注意這個(gè)方法沒有返回值,是在原列表上進(jìn)行修改 str_list = ["adfas", "dsdfw", "nklo"] str_list.sort() print(str_list) # ['adfas', 'dsdfw', 'nklo'] # 8.insert(pos, ele) 在指定位置插入元素 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 str_list.insert(2, "we") # ['a', 'b', 'we', 'c'] print(str_list) # 如果位置超出長度,不會報(bào)錯(cuò),會在尾部插入 str_list.insert(20, "we") # [['a', 'b', 'we', 'c', 'we'] print(str_list) # 9.del(pos) 刪除指定位置的元素 # 需要注意這個(gè)方法不是通過列表.調(diào)用的 # 可以類似理解為,它不是列表這個(gè)類中的方法 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 del str_list[0] print(str_list) # ['b', 'c'] # del str_list[20] # IndexError: list assignment index out of range # 10.extend(list)或+=合并 num_list = [1, 2] str_list = ["a", "b"] print(str_list + num_list) # ['a', 'b', 1, 2] # 11.remove(ele) 刪除指定值 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 str_list.remove("a") print(str_list) # ['b', 'c'] # str_list.remove("d") # ValueError: list.remove(x): x not in list # 12.pop(pos) 刪除指定位置的元素 str_list = ['a', 'b', 'c'] # 創(chuàng)建一個(gè)字符串列表 # str_val = str_list.pop(100) # IndexError: pop index out of range str_val = str_list.pop(0) print(str_val) # a print(str_list) # ['b', 'c'] # 13.reverse() 反轉(zhuǎn),見練習(xí) # 14.count(ele)方法查看某個(gè)元素出現(xiàn)的次數(shù) str_list = ['abc', 'b', 'c', "abc"] print(str_list.count("abc")) # 2
三、列表的轉(zhuǎn)換
其他形式轉(zhuǎn)列表,采用list(otherType)的方法??梢赞D(zhuǎn)列表的類型有:字符串,元組等,如下代碼所示:
str_01 = "abc" print(list(str_01)) # ['a', 'b', 'c'] tuple_01 = (1, 2, 3) print(list(tuple_01)) # [1, 2, 3]
列表轉(zhuǎn)其他形式,通??雌渌问绞窃趺粗С洲D(zhuǎn)換。其中比較靈活的是列表轉(zhuǎn)字符串,采用join的方法,如下代碼所示:
str_list = ["a", "b", "c"] print(",".join(str_list)) # a,b,c print("".join(str_list)) # abc
列表轉(zhuǎn)字符串需要注意:首先,join方法不是列表自帶的方法,從調(diào)用來看,它是字符串里的方法;其次,join方法,如果列表中的元素不是字符串,會報(bào)錯(cuò),如下代碼所示:
num_list = [1, 2, 3] # print("".join(num_list)) # TypeError: sequence item 0: expected str instance, int found
四、常見的練習(xí)題
1. 列表的反轉(zhuǎn)
# 方式一:調(diào)用列表的reverse()方法 num_list = [1, 2, 3] num_list.reverse() print(num_list) # [3, 2, 1] # 方式二:使用切片 num_list = [1, 2, 3] for num in num_list[::-1]: print(num) # 如果需要[3, 2, 1]這樣的格式 num_list = [1, 2, 3] print("[", end="") for num in num_list[:0:-1]: print(num, end=", ") if not num_list: # 如果列表為空 print("]") else: print("%d]" % num_list[0])
2.如何將列表拷貝到別一個(gè)列表中
nest_list = [1, 2, 3, ['a', 'b', 'c']] new_nest_list = nest_list # 直接賦值拷貝 print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c']] new_nest_list.append("4") print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c'], '4'] print(nest_list) # [1, 2, 3, ['a', 'b', 'c'], '4'] # 直接賦值的拷貝會影響原來的列表,是一種淺拷貝 nest_list = [1, 2, 3, ['a', 'b', 'c']] new_nest_list = nest_list[::] # 切片 print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c']] new_nest_list.append("4") print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c'], '4'] print(nest_list) # [1, 2, 3, ['a', 'b', 'c']] nest_list[-1].append("d") print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c', 'd'], '4'] print(nest_list) # [1, 2, 3, ['a', 'b', 'c', 'd']] # 使用切片,改變最外層對原列表沒有影響,而內(nèi)層是有影響的。這也是一種淺拷貝 nest_list = [1, 2, 3, ['a', 'b', 'c']] new_nest_list = nest_list.copy() # 使用copy方法 print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c']] new_nest_list.append("4") print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c'], '4'] print(nest_list) # [1, 2, 3, ['a', 'b', 'c']] nest_list[-1].append("d") print(new_nest_list) # [1, 2, 3, ['a', 'b', 'c', 'd'], '4'] print(nest_list) # [1, 2, 3, ['a', 'b', 'c', 'd']] # 使用copy,改變最外層對原列表沒有影響,而內(nèi)層是有影響的。這也是一種淺拷貝 # 如果想要實(shí)現(xiàn)深拷貝,需要使用copy模塊中的deepcopy方法,詳見<python中的深拷貝與淺拷貝>一文
3.列表的排序
列表的簡單排序通常使用list.sort()方法。 但是這個(gè)sort方法使用會相對比較靈活。它的完整定義如下:
sort(*, key=None, reverse=False)
key指定一個(gè)函數(shù)名,并且這個(gè)函數(shù)只能接受一個(gè)參數(shù)
reverse指定排序的方式
x = ['bc', 'essmm', 'mdsfm', 'ss' ] x.sort(key=str.lower) print(x) # ['bc', 'essmm', 'mdsfm', 'ss'] y = [3, 2, 8, 0, 1] y.sort(reverse=True) print(y) # [8, 3, 2, 1, 0]
可以發(fā)現(xiàn),使用list.sort()方法進(jìn)行排序,是調(diào)用的列表中自帶的方法,并且它是作用于原列表,并沒有返回值。如果我們想要得到一個(gè)新的排好序的列表,則需要使用到sorted()方法。
感謝各位的閱讀,以上就是“Python列表的創(chuàng)建和轉(zhuǎn)換方式”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python列表的創(chuàng)建和轉(zhuǎn)換方式這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
新聞標(biāo)題:Python列表的創(chuàng)建和轉(zhuǎn)換方式-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article20/cchhjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、建站公司、用戶體驗(yàn)、App開發(fā)、微信公眾號、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容