• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python列表學習筆記

    標簽: Python學習筆記

    1. 列表的創建

    列表是Python的核心數據類型,可由數值、字符串、布爾值和空值構成。

    a = [1,2,'s',None,True]
    print(a,type(a))
    
    [1, 2, 's', None, True] <class 'list'>
    
    # 空列表
    Null = []
    Null
    
    []
    
    # 列表中包含列表,即嵌套列表
    a = [1,2,[2,3,4]]
    print(a,type(a))
    
    [1, 2, [2, 3, 4]] <class 'list'>
    

    利用range()來生成列表

    range(start,end,step)

    • start起始數據
    • end結束數據
    • step設置步長
    • 這三者數據類型都為int(整型),否則報錯
    range(1,2,1.1)
    
    ---------------------------------------------------------------------------
    
    TypeError                                 Traceback (most recent call last)
    
    <ipython-input-71-8655ac74624c> in <module>()
    ----> 1 range(1,2,1.1)
    
    
    TypeError: 'float' object cannot be interpreted as an integer
    
    # 通過range()這個生成器新建一個range對象
    r = range(1,9,2)
    print(r,type(r))
    # 創建的range對象也可以根據索引截取
    print(r[:1],type(r[:1]))
    # 通過list()函數可將range對象轉為列表
    lst = list(r)
    print(lst,type(lst))
    
    range(1, 9, 2) <class 'range'>
    range(1, 3, 2) <class 'range'>
    [1, 3, 5, 7] <class 'list'>
    
    r = range(1,9,2)
    lst = list(r)
    print(lst,type(lst))
    
    [1, 3, 5, 7] <class 'list'>
    

    2. 列表的連接與復制

    列表的連接(與字符串連接相同,都是通過+連接)

    lst1 = ['a','b']
    lst2 = [2]
    lst1 + lst2 # 連接在末尾
    
    ['a', 'b', 2]
    

    列表的復制(與字符串復制相同,都是通過*復制)

    lst1 * 2
    
    ['a', 'b', 'a', 'b']
    

    3. 列表的索引與切片

    • 實質上與字符串的索引和切片類似

    列表的索引

    lst = ['a','b',[2,3],5]
    # 通過索引提取出2
    print('正序索引結果:',lst[2][0],';逆序索引結果:',lst[-2][-2])
    
    正序索引結果: 2 ;逆序索引結果: 2
    

    列表的切片

    • 切片是一個左閉右開區間,即左可取到、右不可取到。
    # 提取第一個到第三個元素
    print(lst[:3])
    # 第二個到倒數第二個
    print(lst[1:-1]) # 正逆序索引可結合使用
    # 還可以通過設置步長進行切片
    a = list(range(9))
    a[1:6:3]
    
    ['a', 'b', [2, 3]]
    ['b', [2, 3]]
    [1, 4]
    

    4. 列表常用操作

    查看列表的長度,即列表中有多少個元素

    • len(list)
    # 嵌套的列表只算一個
    lst = ['a','b',[2,3],5]
    len(lst)
    
    4
    

    純數值數據列表的計算

    • 最大值:max(list)
    • 最小值:min(list)
    • 總?和:sum(list)
    a = list(range(1,9))
    print('a的最大值為:{};最小值為:{};總和為:{}'.format(max(a),min(a),sum(a)))
    
    a的最大值為:8;最小值為:1;總和為:36
    

    統計某個值出現的次數

    • list.count(值)
    lst = ['a','a',12,3,21,4,2,3]
    print(type(lst.count('a')),lst.count(12)) # 返回的次數為int型
    
    <class 'int'> 1
    

    查詢某個值第一個匹配項的索引位置(從左到右)

    • list.index(值,起始索引,終止索引),返回第一個匹配的索引值
    lst = ['a','a',12,3,21,4,2,3]
    # 終止索引取不到,如果不存在則會報錯
    lst.index(3,1,9)
    
    3
    

    列表的可變性,即列表可通過索引修改元素,或者通過增減元素來改變原列表

    修改元素的值

    a = ['a', 'b', [2, 3]]
    a[-1][0] = 'change'
    a
    
    ['a', 'b', ['change', 3]]
    

    列表的更新

    在列表末尾添加新的一個對象

    • list.append()注意每次只能添加一個元素,一定是在列表末尾添加,該方法無返回值,但是會修改原來的列表。
      在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
    • list.extend()注意每次只能添加一個序列,一定是在列表末尾添加,該方法無返回值,但是會修改原來的列表。
      注意,extend輸入的是一個序列,append輸入的是一個對象
    # append里的參數是一個對象,所以會直接加入列表末尾
    lst = [1,2]
    lst.append('hello')
    lst
    
    [1, 2, 'hello']
    
    # extend里的參數是一個序列,字符串是序列,所以每個字母都會成為單獨對象被加入列表
    lst = [1,2]
    lst.extend('hello')
    lst
    
    [1, 2, 'h', 'e', 'l', 'l', 'o']
    
    lst = [2]
    lst.append(['a','b'])
    lst
    
    [2, ['a', 'b']]
    
    lst = [2]
    lst.extend(['a','b'])
    lst
    
    [2, 'a', 'b']
    

    列表排序

    列表所有元素反轉

    • list.reverse()
      sorted(list,key=None, reverse=False)
    • key:按照一定的規則進行排序,模認無
    • reverse:是否反轉序列,默認否
      list.sort(key=None, reverse=False)
    • key:按照一定的規則進行排序,模認無
    • reverse:是否反轉序列,默認否
    lst = [4,23,25,2,34,23,4,2]
    lst.reverse()
    lst
    
    [2, 4, 23, 34, 2, 25, 23, 4]
    
    lst = [4,23,25,2,34,23,4,2]
    lst.sort()
    lst
    
    [2, 2, 4, 4, 23, 23, 25, 34]
    
    lst = [4,23,25,2,34,23,4,2]
    sorted(lst)
    
    [2, 2, 4, 4, 23, 23, 25, 34]
    

    指定位置插入元素

    • list.insert(插入位置,插入值)
    lst = ['a','c']
    lst.insert(1,'b')
    lst
    
    ['a', 'b', 'c']
    

    列表元素的移除

    • list.remove()方法:移除列表中某個值的第一個匹配項
    • del list[ ]語句:刪除list的相應索引值。注意這里不需要圓括號!
    • list.clear():移除所有元素
    • list.pop(索引值):不添加則刪除最后一個元素
    lst = ['a', 'b', 'c']
    lst.remove('a')
    lst
    
    ['b', 'c']
    
    lst = ['a', 'b', 'c']
    del lst[0:2]
    lst
    
    ['c']
    
    lst = ['a', 'b', 'c']
    lst.clear()
    lst
    
    []
    
    lst = ['a', 'b', 'c']
    lst.pop(1)
    lst
    
    ['a', 'c']
    

    判斷元素是否在列表中

    • in 和 not in
    lst = ['a', 'b', 'c']
    print('a' in lst)
    print('d' not in lst)
    
    True
    True
    

    5. 列表的簡單應用

    將8個蘋果,隨機放入3個籃子中

    import random
    
    # 8個蘋果分別標記
    apples = ['a','b','c','d','e','f','g','h']
    # 定義需要放入的籃子
    lanzi = [[],[],[]]
    
    # 隨機放入籃子
    for i in apples:
        # 隨機放入哪一個籃子,用下標索引來模擬放入
        c = random.randint(0,2) # 左閉右閉
        lanzi[c].append(i)
    
    i = 0
    for j in lanzi:
        print('lanzi%d的蘋果有%d個'%(i,len(j)))
        i += 1
        for apple in j:
            print('%s'%apple,end='\t')
        print('\n')
        print('-*-'*10)
    
    lanzi0的蘋果有3個
    a	f	h	
    
    -*--*--*--*--*--*--*--*--*--*-
    lanzi1的蘋果有1個
    b	
    
    -*--*--*--*--*--*--*--*--*--*-
    lanzi2的蘋果有4個
    c	d	e	g	
    
    -*--*--*--*--*--*--*--*--*--*-
    
    products = [["iphone" ,6888],["MacPro",14800],
                ["小米6",24991],["Coffee",31],
                ["Book", 60],["Nike",699]]
    print('- '*5,'商品列表','- '*5)
    num = 0
    for i in products:
            print('%d      %s      %d'%(num,i[0],i[1]))
            num += 1
    
    - - - - -  商品列表 - - - - - 
    0      iphone      6888
    1      MacPro      14800
    2      小米6      24991
    3      Coffee      31
    4      Book      60
    5      Nike      699
    
    print('根據商品編號,添加購物車')
    is_q = input('輸入q退出,輸入其它繼續')
    a = []
    while is_q != 'q':
        i = eval(input('請輸入商品編號'))
        a.append([i,products[i][0],products[i][1]])
        is_q = input('輸入q退出')
        
    print('- '*5,'商品列表','- '*5)  
    
    pay_all = []
    for i in a:
        print('%d      %s      %d'%(i[0],i[1],i[2]))
        pay_all.append(int(i[2]))
    print('您一共消費%d元'%sum(pay_all))
    
    根據商品編號,添加購物車
    輸入q退出,輸入其它繼續s
    請輸入商品編號2
    輸入q退出s
    請輸入商品編號1
    輸入q退出q
    - - - - -  商品列表 - - - - - 
    2      小米6      24991
    1      MacPro      14800
    您一共消費39791元
    
    版權聲明:本文為qq_44285092原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_44285092/article/details/106010632

    智能推薦

    python學習筆記之列表操作

    一.列表的定義 二.列表的索引 三.列表的切片   四.列表的增,刪,改,查     刪除列表中遇到的第一個 value 值:shopping.remove("apple")         刪除列表中第 i 個索引值:del shopping[0]         刪...

    python學習筆記(二)列表和元組

    一、列表格式 列表也可稱為數組,與c語言中的數組一樣,列表也是由[]和,組成,如: mumber = [1,2,3,4,5] 這就定義了一個由五個整形組成的一個列表。 但是,python的列表不會如此簡單,它可以說是一個大雜燴,為何這樣說呢? member = [‘Jacyn’,1,2,3.00,[1,2,3]] 這樣一個包含了字符串,整形,浮點型,甚至包含了一個列表的列表...

    干貨 | Python學習筆記(一)列表

    大家好,我是木木~  今天是有關Python的學習筆記,核心內容為List列表的操作! No.1 數據類型概述 Python標準數據類型:Numbers數字,String字符串,List列表,Tuple元祖,Dici字典 No.2 序列通用操作 序列分類:可變序列list,不可變序列tuple、str No.3 列表list常用操作 今天就到這里,下次繼續哦~ 我不僅僅是一個碼 客官!在...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡