<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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
    +關注

    關注

    52

    文章

    4698

    瀏覽量

    83610
  • 操作符
    +關注

    關注

    0

    文章

    20

    瀏覽量

    9009
收藏 人收藏

    評論

    相關推薦

    python如何修改列表中的每一個值數據

    Python中,我們可以使用不同的方法來修改列表中的每一個值數據。 方法一:使用for循環遍歷列表并修改元素值 首先,我們可以使用for循
    的頭像 發表于 11-29 17:03 ?2495次閱讀

    python將abc按大小順序輸出不用函數

    將'abc'按照大小順序輸出是一個常見的編程問題。在Python中,有多種方法可以實現這個目標。本文將詳盡、詳實、細致地介紹幾種不使用函數的方法,以幫助您更好地理解問題以及解決方法。
    的頭像 發表于 11-29 16:25 ?1999次閱讀

    python如何遍歷列表并提取

    遍歷列表Python中非常常見的操作之一,可以使用for循環或者while循環來實現。下面我將詳細介紹如何使用for循環遍歷列表并提取元素。 首先,讓我們簡單了解一下Python中的
    的頭像 發表于 11-23 15:55 ?775次閱讀

    python怎樣讓列表里的數相加

    Python是一種功能強大的編程語言,可以用于處理各種各樣的數學運算和數據操作。在Python中,我們可以使用簡單的代碼將列表中的數字相加。 首先,我們需要創建一個包含數字的列表。在
    的頭像 發表于 11-22 09:53 ?1273次閱讀

    python怎么將list輸入兩次

    Python中,有多種方法可以將一個列表輸入兩次。下面是使用不同的方法來實現此功能的幾個示例: 方法1: 使用循環將
    的頭像 發表于 11-21 16:17 ?841次閱讀

    python輸出list的每一個元素

    Python是一種簡單易學的編程語言,廣泛應用于各個領域中。而處理列表list)是Python中非常常見的操作之一。在Python中,
    的頭像 發表于 11-21 16:16 ?775次閱讀

    python怎么把list里面的值取出來

    Python語言的列表List)是一種非常常用和靈活的數據類型,它可以存儲多個元素,并允許對這些元素進行各種操作。在Python中,可以使用簡單的語法來訪問和取出
    的頭像 發表于 11-21 16:13 ?1025次閱讀

    python去除list中重復的數據

    Python是一個強大的編程語言,提供了許多解決問題的方法和功能。其中一個常見的問題是如何去除列表中的重復數據。在本文中,我們將詳細介紹Python中去除
    的頭像 發表于 11-21 15:49 ?441次閱讀

    python處理重復值的方法

    處理重復值是數據處理中常見的任務之一。在Python中,有幾種有效的方法可以處理重復值,包括使用集合、字典和pandas庫等。 使用集合 集合數據結構是Python中用于存儲唯一元素的一種
    的頭像 發表于 11-21 15:47 ?723次閱讀

    python列表和數組的區別

    組,從內部實現、性能、操作方式等多個方面進行詳細分析,以幫助讀者更好地理解它們之間的區別和適用場景。 一、內部實現: 列表List): Python中的列表是一種有序的、可變的、可包
    的頭像 發表于 11-21 15:13 ?990次閱讀

    python怎么創建二維數組

    如何創建二維數組在Python中是一個常見的問題。在Python中,我們可以使用嵌套的列表(list of lists)或者使用NumPy庫來創建二維數組。在本文中,我們將詳細介紹這兩
    的頭像 發表于 11-21 15:10 ?1981次閱讀

    python的insert方法

    insert()方法Python中的列表對象提供的一個方法,用于在指定位置插入一個元素。該方法的語法如下:
    的頭像 發表于 11-21 14:27 ?788次閱讀

    Python列表去重的4種方式

    列表去重是Python中一種常見的處理方式,任何編程場景都可能會遇到需要列表去重的情況。 列表去重的方式有很多,本文將一一講解他們,并進行性能的對比。 讓我們先制造一些簡單的數據,生成
    的頭像 發表于 11-02 10:46 ?633次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>列表</b>去重的4種方式

    Newspaper:用于提取和整理文章的python

    Newspaper 是一個很棒的python庫,用于提取和整理文章。 它有以下的優點: 多線程文章下載框架 識別新聞網址 從html提取文本 從html提取頂部圖像 從html提取所有圖像 從文本
    的頭像 發表于 10-30 14:24 ?359次閱讀

    List和Numpy Array有什么區別

    List 列表。列表是最常見的Python數據類型之一,它可以調整大小并且包含不同類型的元素,非常方便。 那么List和Numpy Ar
    的頭像 發表于 10-30 10:49 ?398次閱讀
    <b class='flag-5'>List</b>和Numpy Array有什么區別
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>