女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python之列表list方法分類整理

冬至配餃子 ? 來源:繆斯之子 ? 作者:肖新苗 ? 2022-08-23 10:14 ? 次閱讀

題記

將自帶的方法分類整理、驗證并做成例子, 方便記憶與理解

起初

是為了方便自己查找, 后來因為越來越受歡迎, 所以分享出來

基本的增刪改查,insert,pop

def test_1():
# 增刪改查,增和刪
list1 = ['a', 'b', 'c']
list1.append('d')
assert ['a', 'b', 'c', 'd'] == list1, 'append error'
del list1[0]
assert ['b', 'c', 'd'] == list1, 'del error'
list1[0] = 'e'
assert ['e', 'c', 'd'] == list1, 'update error'
c = list1[1]
assert 'c' == c, 'query error'

list1.insert(1, 'f')
assert ['e', 'f', 'c', 'd'] == list1, 'insert error'
list1.pop(1)
assert ['e', 'c', 'd'] == list1, 'pop error'
list1.pop()
assert ['e', 'c'] == list1, 'pop 2 error'

2.list方法, +操作符, in, enumerate

def test_2():
# 方法:list(p), + , in,enumerate
list1 = list('abc')
assert ['a', 'b', 'c'] == list1, 'list(p) 方法錯誤'
list1 = list1 + ['d', 'e']
assert ['a', 'b', 'c', 'd', 'e'] == list1, 'list相加錯誤'
assert 'a' in list1, 'list的in操作錯誤'

list2 = list({'name': 'a', 'age': 19})
assert ['name', 'age'] == list2, 'list(p) 方法錯誤'

indexs = [i for i, _ in enumerate(list2)]
assert [0, 1] == indexs, 'enumerate error'

3. append和extend

def test_3():
# append 和 extend
list1 = ['a', 'b', 'c']
list2 = ['d', 'e']
list_append = list1.copy()
list_append.append(list2)
assert ['a', 'b', 'c', ['d', 'e']] == list_append, 'list append方法錯誤'
list_extend = list1.copy()
list_extend.extend(list2)
assert ['a', 'b', 'c', 'd', 'e'] == list_extend, 'list extentd 方法錯誤'

4.index 和 sort方法

def test_4():
# list.index(obj),sort
list1 = ['b', 'c', 'a']
i = 0
for v in list1:
assert list1.index(v) == i, f'list index方法錯誤 i:{i},v:{v}'
i += 1

list1.sort()
assert ['a', 'b', 'c'] == list1, 'list sort 方法錯誤'
list1.sort(reverse=True)
assert ['c', 'b', 'a'] == list1, 'list sort reverse 方法錯誤'

list2 = [{
'name': 'b',
'age': 20
}, {
'name': 'a',
'age': 18
}, {
'name': 'b',
'age': 19
}]
list2.sort(key=lambda kv: kv['name'])
assert {'name': 'a', 'age': 18} == list2[0], 'list sort key方法錯誤'
list2.sort(key=lambda kv: kv['age'])
assert [{
'name': 'a',
'age': 18
}, {
'name': 'b',
'age': 19
}, {
'name': 'b',
'age': 20
}] == list2, 'list sort key 方法錯誤'
list2.sort(key=lambda kv: (kv['name'], kv['age']))
assert [{
'name': 'a',
'age': 18
}, {
'name': 'b',
'age': 19
}, {
'name': 'b',
'age': 20
}] == list2, 'list sort key 方法錯誤'

5.淺復制和深度復制

import copy

def test_5():
# 淺復制 和 深度復制
# 只有list1中的數據是引用類型的時候,才會考慮deepcopy,否則,平常的copy就行
# 也就是說,如果只是修改a,b,c, list3,list4,list5 都不會影響list1
list1 = ['a', 'b', 'c', ['e', 'f']]
list2 = list1
list3 = list1[:]
list4 = list1.copy()
list5 = [i for i in list1]
list6 = copy.deepcopy(list1)

assert id(list1) == id(list2), '== error'
assert id(list1) != id(list3), '[:] error'
assert id(list1) != id(list4), 'list copy error'
assert id(list1) != id(list5), 'for error'
assert id(list1) != id(list6), 'deepcopy error'

list6[3][0] = 'd'
assert ['a', 'b', 'c', ['e', 'f']] == list1, 'deepcopy 1 error'
assert ['a', 'b', 'c', ['d', 'f']] == list6, 'deepcopy 2 error'

6.倒著刪除: 為了防止刪除時報錯或者數據不對

# 正確的刪除方式
def test_6():
list1 = ['a', 'b', 'c', 'd']
for i in range(len(list1) - 1, -1, -1):
del list1[i]
assert [] == list1, 'list delete error'
# 錯誤的方式
def test_7():
# 不要這樣刪除:https://blog.51cto.com/u_14246112/3157689
list1 = ['a', 'b', 'c']
for i in list1:
list1.remove(i)
# 本意是刪除所有元素,但是刪除的過程中列表發生了位移,所以刪除了 a和c
assert ['b'] == list1, 'list delete 2 error'

7.拆分: n:小集合的長度為n

def test_8():
a1 = [i for i in range(100)]
s1 = split_list_by_size(a1, 7)
# 每個小集合應該都是7,最后一個是小于等于7
assert len(s1[-1]) <= 7, 'split size 1 error'
s1.pop()
for i in s1:
assert len(i) == 7, 'split size 2 error'

def split_list_by_size(raw_list, n):
# n:小集合的長度為n
l = len(raw_list)
return [raw_list[i:i + n] for i in range(0, l, n)]
8. 拆分: n:有多少個小集合

def test_9():
a1 = [i for i in range(100)]
s1 = split_list_by_number(a1, 7)
# 大集合中有7個小集
assert len(s1) == 7, 'split number 2 error'

def split_list_by_number(raw_list, n):
# n:有多少個小集合
l = len(raw_list)
s = int(l / n) + 1
return [raw_list[i:i + s] for i in range(0, l, s)]


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86170
  • 操作符
    +關注

    關注

    0

    文章

    21

    瀏覽量

    9122
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    創建列表 (List) 介紹,一起來看看是做什么的

    創建列表 (List) 列表是一種復雜的容器,當列表項達到一定數量,內容超過屏幕大小時,可以自動提供滾動功能。它適合用于呈現同類數據類型或數據類型集,例如圖片和文本。在
    發表于 04-30 07:06

    Demo示例: List的使用

    List 列表包含一系列相同寬度的列表項。適合連續、多行呈現同類數據,例如圖片和文本。 子組件 僅支持ListItem、ListItemGroup子組件。 常用接口 List(v
    發表于 04-28 06:49

    python入門圣經-高清電子書(建議下載)

    和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內容; 第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D 游戲開發如何利用數據
    發表于 04-10 16:53

    Python中的迭代器與生成器

    Python迭代器與生成器 列表生成式 列表生成式也叫做列表推導式,它本身還是列表,只不過它是根據我們定義的規則來生成一個真實的
    的頭像 發表于 02-20 10:43 ?315次閱讀

    電話配線架怎么整理好看

    斷開與電話配線架相關的電源和通信連接,以避免在整理過程中發生意外。 準備工具: 準備必要的工具,如剝線刀、打線刀、扎帶、IDC配線架模塊等,以便在整理過程中使用。 二、整理步驟 分類
    的頭像 發表于 02-19 11:34 ?402次閱讀

    Python中dict支持多個key的方法

    ? 在Python中,字典(dict)是一種非常強大的數據結構,它允許我們通過鍵(key)來存儲和檢索值(value)。有時候,我們可能想要根據多個鍵來檢索或操作字典中的數據。雖然Python的字典
    的頭像 發表于 11-29 15:59 ?479次閱讀

    焊接方法分類及應用

    焊接是一種將兩個或多個金屬部件通過加熱、加壓或兩者結合的方式連接在一起的制造工藝。焊接方法可以根據焊接過程中使用的能量源、保護介質、焊接材料和操作方式等進行分類。 焊接技術是現代工業中不可或缺
    的頭像 發表于 11-01 09:33 ?1350次閱讀

    emc有哪些測試方法分類方法

    、EMC測試的分類方法 1. EMI(電磁干擾)測試 EMI測試主要評估設備在正常工作時產生的電磁干擾水平,以確保其不會對其他設備或系統造成不可接受的干擾。EMI測試主要包括以下幾種類型: 輻射發射測試(Radiated Emission Test) :評估設備通過空間以
    的頭像 發表于 10-21 17:09 ?1944次閱讀

    雷達的基本分類方法

    電子發燒友網站提供《雷達的基本分類方法.pdf》資料免費下載
    發表于 09-11 09:09 ?6次下載

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的
    的頭像 發表于 07-18 14:53 ?691次閱讀

    基于Python的深度學習人臉識別方法

    基于Python的深度學習人臉識別方法是一個涉及多個技術領域的復雜話題,包括計算機視覺、深度學習、以及圖像處理等。在這里,我將概述一個基本的流程,包括數據準備、模型選擇、訓練過程、以及測試與評估,并附上簡單的代碼示例。
    的頭像 發表于 07-14 11:52 ?1576次閱讀

    python訓練出的模型怎么調用

    Python中,訓練出的模型可以通過多種方式進行調用。 1. 模型保存與加載 在Python中,訓練好的模型需要被保存,以便在其他程序或會話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發表于 07-11 10:15 ?3201次閱讀

    鴻蒙ArkTS容器組件:ListItemGroup

    該組件用來展示列表item分組,寬度默認充滿[List]組件,必須配合List組件來使用。
    的頭像 發表于 07-10 09:20 ?1168次閱讀
    鴻蒙ArkTS容器組件:ListItemGroup

    深度學習中的時間序列分類方法

    的發展,基于深度學習的TSC方法逐漸展現出其強大的自動特征提取和分類能力。本文將從多個角度對深度學習在時間序列分類中的應用進行綜述,探討常用的深度學習模型及其改進方法,并展望未來的研究
    的頭像 發表于 07-09 15:54 ?1923次閱讀

    鴻蒙ArkTS容器組件:List

    列表包含一系列相同寬度的列表項。適合連續、多行呈現同類數據,例如圖片和文本。
    的頭像 發表于 07-09 14:57 ?1454次閱讀
    鴻蒙ArkTS容器組件:<b class='flag-5'>List</b>