欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python中列表常用小技巧有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹Python中列表常用小技巧有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司是專業(yè)的金城江網(wǎng)站建設(shè)公司,金城江接單;提供網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行金城江網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

1.1. 列表中的增

對列表的增加操作有兩種,一種是創(chuàng)建一個新的列表,一種是在一個已有的列表中增加一個新元素。我們首先介紹如何創(chuàng)建一個新的列表:

# 創(chuàng)建一個空列表
list1 = []
# 創(chuàng)建一個默認值為0,長度為n的列表
list2 = [0] * n
# 利用列表生成式創(chuàng)建列表
list3 = [i for i in range(10)]
# 5*5 二維列表
list4 = [[i for i in range(5)] for j in range(5)]
# 利用其他數(shù)據(jù)結(jié)構(gòu)生成列表, list() 函數(shù)接收一個可迭代對象作為參數(shù)
tuple1 = (1, 2, 3)
list5 = list(tuple1)

# 字符串轉(zhuǎn)化為列表
str1 = "I love code"
# 每個元素作為列表中的一個元素
list6 = list(str1)
# 按照指定字符分割
list7 = str1.split(" ") # ['I', 'love', 'code']

在編程過程中,有時我們需要對一個列表進行操作,但是列表是一個可變對象,對列表的操作往往會改變其本來的順序結(jié)構(gòu)。因此,當我們不想改變列表原有的順序結(jié)構(gòu),我們需要對舊的列表進行一個拷貝,然后在新的列表上進行操作??截惔嬖趦煞N,淺拷貝和深拷貝??赡苡腥藭@兩種拷貝存在疑問,他們得到的列表的形式不是一樣的嘛?

是的,它們在拷貝后得到的列表形式確實是一樣的。但是在進行操作時,就會有很大的差別了,特別是當你的列表中存在可變對象時。我們只需要記住一點,淺拷貝只復(fù)制不可變對象,而深拷貝不僅復(fù)制不可變對象,還復(fù)制了可變對象。以下進行舉例說明:

# 如果一個列表中的元素都是不可變對象,可以直接用淺拷貝
list1 = [1, 2, 'i']

list2 = list1[::1] # 淺拷貝
list3 = [i for i in list1] # 淺拷貝
import copy
list4 = copy.copy(list1) # 淺拷貝

# 如果一個列表中的元素包含可變對象,要完成復(fù)制列表,需要用深拷貝
list5 = ["Will", 1, ["Python", "Java", "C++"]]
list6 = copy.deepcopy(list5)

為什么在包含不可變對象的時候,需要用到深拷貝呢?

上面我們說過,淺拷貝只拷貝不可變對象。當列表中存在可變對象時,我們可以發(fā)現(xiàn)其引用 id 是一樣的,即它們是同一個對象,因此對 list5 的操作會影響到 list6 。而在深拷貝中,對于可變對象,在拷貝的新列表中會生成一個新的對象,所以對 list6 的修改不會影響到 list5 。

id(list5[2]) # 2195936916360
id(list6[2]) # 2195936916744

對列表的另一種增加操作就是在已有的列表的基礎(chǔ)上增加元素了,主要包括以下幾種操作:

list1 = ["I"]
# 在列表尾部增加一個新元素
list1.append("love")
# 合并兩個列表
list2 = ["Apple", 3]
list1.extend(list2) # ["I", "love", "Apple", 3]
list1 = list1 + list2 # ["I", "love", "Apple", 3]
# 在指定位置插入元素
list1.insert(index=1, "not") # ["I", "not", "love", "Apple", 3]

1.2. 列表中的刪

對數(shù)據(jù)結(jié)構(gòu)的刪除操作包括兩種,刪除整個列表,或者刪除列表中的某些元素。對于從內(nèi)存中刪除整個列表,該操作十分簡單:

list1 = [1, 2, 3]
del list1

對于刪除列表中的元素,同樣可以使用 del 語句,同時還可以使用 remove() 函數(shù)。

list1 = [1, 2, 3]
print(list1) # [1, 2, 3]
del list1[1] 
print(list1) # [1, 3]

# 移除某個值的第一匹配項
list2 = [1, 2, 2, 3, 5]
list2.remove(2) # 移除第一個值為 2 的元素

1.3. 列表中的改

修改操作即在原有的列表的基礎(chǔ)上對其進行修改,上面以及介紹了增加和刪除操作,這里就對不改變元素的個數(shù)的操作進行介紹,主要包括排序和反轉(zhuǎn)列表等。

# 對一個整數(shù)列表進行排序
list1 = [9, 5, 6, 2, 7, 1, 3]
# 升序排列
list1.sort() # [1, 2, 3, 5, 6, 7, 9]
list1 = sorted(list1) # [1, 2, 3, 5, 6, 7, 9]
# 降序排列
list1.sort(reverse=True) # [9, 7, 6, 5, 3, 2, 1]
list1 = sorted(list1, reverse=True) # [9, 7, 6, 5, 3, 2, 1]

# 指定鍵值排序
list1 = [('a', 3), ('b', 2), ('c', 1)]
list1.sort(key=lambda x:x[1]) # [('c', 1), ('b', 2), ('a', 3)]

## 反轉(zhuǎn)列表,即將原來的列表逆序排列
list2 = [4, 2, 3, 1]
list2 = list2[::-1] # [1, 3, 2, 4]
list2.reverse() # [1, 3, 2, 4]

1.4. 列表中的查

對列表的查找操作無外乎以下幾種:

  • 遍歷列表;

  • 查找指定索引的元素;

  • 查找指定值的元素;

列表的遍歷方式有三種,分別是根據(jù)索引遍歷、根據(jù)值遍歷和 enumerate()遍歷。

list1 = ["Python", "C++", "Java"]

# 方法 1
for i in range(len(list1)):
 print(list1[i])

# 方法 2 , 遍歷速度最高效,但是無法記錄索引
for i in list1:
 print(i)

# 方法 3
for index, val in enumerate(list1):
 print(val)

查找元素有兩種,一種是按照索引查找,一種是遍歷按值查找。

# 查找指定索引的元素
list1 = [1, 3, 2, 5, 7, 8]
list1[3] # 返回索引為 3 的元素,值為5

# 查找指定值的元素
key = 5
for i in list1:
 if i == key:
 print("OK")

# 查找大元素和最小元素
max(list1) # 8
min(list1) # 1

1.5. 其它小技巧

上述介紹了列表的增刪改查四種常用操作,當然對列表的操作不僅僅只有這些,例如還有兩個列表的比較,列表結(jié)構(gòu)的轉(zhuǎn)化等等。

比較兩個列表是否是一樣的,這里的前提條件是這兩個列表對象不是同一個對象。

list5 = [("car", 1), ("bike", 2), ("foot", 3)]
list6 = [("car", 1), ("bike", 2), ("foot", 3)]
# 判斷兩個列表是否是同一個對象
list5 is list6 # False
# 判斷兩個列表是否相等
list5 == list6 # True

# 當列表中的元素很多,且結(jié)構(gòu)復(fù)雜時,可以使用 numpy 模塊
import numpy as np
a = np.array(list5)
b = np.array(list6)
(a == b).all() # True

列表結(jié)構(gòu)的轉(zhuǎn)化主要包括將列表轉(zhuǎn)化為元組、集合、字符串和字典:

list1 = ["a", "b", "c", "d", "c"]
# 列表轉(zhuǎn)化為元組
tuple1 = tuple(list1) # ('a', 'b', 'c', 'd', 'c')

# 列表轉(zhuǎn)化為集合
set1 = set(list1) # {'a', 'b', 'c', 'd'}

# 列表轉(zhuǎn)化為字符串
str1 = "".join(list1) # 'abcdc'

# 列表轉(zhuǎn)化為字典,元素為 key, 次數(shù)為 value
from collections import Counter, defaultdict
dict1 = Counter(list1) # Counter({'a': 1, 'b': 1, 'c': 2, 'd': 1})
# 或者
dict2 = defaultdict(int)
for i in list1:
 dict2[i] += 1
dict2 # defaultdict(int, {'a': 1, 'b': 1, 'c': 2, 'd': 1})

以上是“Python中列表常用小技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:Python中列表常用小技巧有哪些-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://aaarwkj.com/article44/cdpjee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)頁設(shè)計公司、App設(shè)計、網(wǎng)站建設(shè)、面包屑導航、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
av真人青青小草一区二区欧美| 在线观看亚洲毛片网站| 色婷婷av一区二区三| 亚洲一区二区四区乱码在线| av成人综合在线资源站| 精品少妇人妻av免费久久久| 日韩中文字幕在线二区| 久久久国产精品久久久| 国产精品欧美日韩中文| 亚洲国产精品第一区第二区| 免费直接在线看亚洲黄色| 福利av一区二区三区| 久久中文字幕人妻熟av| 女同同性av观看免费| 亚乱熟女一区二区三区| 亚洲一区二区三区三洲| 日本精品亚洲一区二区三区 | 在线观看不卡的黄色地址| av电影在线中文字幕| 91成人精品永久在线观看| 九九热这里面只有精品| 欧美熟妇精品一区二区蜜桃| 最新91精品手机国产在线| 亚洲精品av一区二区久久| 国产亚洲精品精品国产亚洲| 欧美成人精品高清在线| 国内自拍韩国资源在线| 中文字幕av免费专区| 91九色在线免费观看| 国产精品国产三级国产av野外| 国产粉嫩一区二区三区在线观看| 国产白丝扒开做爽爽爽网站| 人人妻人人澡人人爽久久av| 中文字幕乱码人妻一二三| 日韩国产精品视频二区| 99久久久国产精品日本久久区一| 国产精品毛片一区二区三区| 欧美精品一区二区网址| 欧美日韩国产免费电影| 欧美人与性禽动交情品| 日本区一区二区三视频|