• <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的學習筆記,核心內容為List列表的操作!

    No.1

    數據類型概述

    Python標準數據類型:Numbers數字,String字符串,List列表,Tuple元祖,Dici字典

    # Numbers數字分為:int整型,long長整型,float浮點型,complex復數
    
    x1 = 10
    x2 = 10.0
    print(type(x1),type(x2))#輸出<class 'int'> <class 'float'>
    
    # print()函數,用于輸出/打印內容
    # type()函數,用于查看數據類型
    
    # String字符串由數字、字母、下劃線組成的一串字符,用于表示文本的數據類型
    
    x3 = "hello world!"
    print(x3,type(x3))
    print('hehe')
    print("hahaha")
    print('''what is this?
    it`s a cat.''')
    # 一定用英文標點符號,單引號('') 雙引號("")一樣,三引號(''''''或"""""")可以表示多行字符串
    #輸出hello world! <class 'str'>
    # hehe
    # hahaha
    # what is this?
    # it`s a cat.
    
    # bool布爾型:True,False,用于做判斷
    
    x4 = True
    print(x4,type(x4))
    
    print(True == 1)
    print(False == 0)
    print(True * 10)
    # True實際值是1,False實際值是0
    # 輸出
    # True <class 'bool'>
    # True
    # True
    # 10
    
    # List列表,支持字符,數字,字符串以包含列表(即嵌套),用[]標識,有序對象
    
    x5 = [1,'a',2.4,502.2,[1,2,3]]
    print(x5,type(x5))
    # 輸出[1, 'a', 2.4, 502.2, [1, 2, 3]] <class 'list'>
    
    # Tuple元組,用()標識,不能二次賦值,可以理解成不可變的列表(只讀列表),有序對象
    
    x6 = (1,2,3,'hello')
    print(x6,type(x6))
    # 輸出(1, 2, 3, 'hello') <class 'tuple'>
    
    # Dict字典,用{}標識,由索引(key)和它對應的值value組成,無序對象
    
    x7 = {"name":"fatbird", "city":"shanghai", "tel":10001000}
    print(x7,type(x7))
    輸出:{'tel': 10001000, 'name': 'fatbird', 'city': 'shanghai'} <class 'dict'>
    
    # 數值類型轉換方法  **這里暫時只針對int,float,str三者,list/tuple/dict后面課程講
    
    var1 = 10.8
    var2 = int(var1)
    print(var1,type(var1))
    print(var2,type(var2))
    print('----------')
    # int(x)函數:將x轉為整數,如果是四舍五入則是round(x)函數
    
    var1 = 10
    var2 = float(var1)
    print(var1,type(var1))
    print(var2,type(var2))
    print('----------')
    # float(x)函數:將x轉為浮點數
    
    var1 = 10.0
    var2 = str(var1)
    var3 = float(var2)
    print(var1,type(var1))
    print(var2,type(var2))
    print(var3,type(var3))
    print('----------')
    # str(x)函數:將x轉為字符串
    
    # 輸出:
    # 10.8 <class 'float'>
    # 10 <class 'int'>
    # ----------
    # 10 <class 'int'>
    # 10.0 <class 'float'>
    # ----------
    # 10.0 <class 'float'>
    # 10.0 <class 'str'>
    # 10.0 <class 'float'>
    # ----------
    

    No.2

    序列通用操作

    序列分類:可變序列list,不可變序列tuple、str

    # 判斷值是否屬于序列
    
    lst = [1,2,3,4,5,6]
    a,b = 1,10
    print(a in lst)  # a 在 lst 序列中 , 如果 x 在 y 序列中返回 True。輸出True
    print(b not in lst)  # b 不在 lst 序列中 , 如果 x 不在 y 序列中返回 True。輸出True
    
    # 序列鏈接與重復
    
    lst1 = [1,2,3]
    lst2 = ['a','b','c']
    print(lst1+lst2)  # "+":序列的鏈接
    print(lst1*3,lst2*2)  # "*":序列重復
    # 輸出
    # [1, 2, 3, 'a', 'b', 'c']
    # [1, 2, 3, 1, 2, 3, 1, 2, 3] ['a', 'b', 'c', 'a', 'b', 'c']
    
    # 下標索引
    
    lst = [1,2,3,4,5,6,7,8,9,0]
    print(lst[0],lst[2],lst[9])  # 索引從0開始,eg lst[2]中,下標索引是2,指向lst的第3個值
    print(lst[-1])  # 索引-1代表最后一個值
    #print(lst[10])  # 這里一共有10個值,所以最大索引是9
    # 輸出
    # 1 3 0
    # 0
    
    # 切片
    
    lst = [1,2,3,4,5,6,7,8,9,0]
    print(lst[2:5])  # 切片可以理解成列表的值區間,且是一個左閉右開區間,這里lst[2:5]代表的區間是:索引2的值 - 索引4的值
    print(lst[:5])  # 左邊無索引,代表從索引0開始
    print(lst[4:])  # 右邊無索引,代表以最后一個值結束
    print(lst[5:-1])  # 索引5的值 - 倒數第二個值 
    # 輸出
    # [3, 4, 5]
    # [1, 2, 3, 4, 5]
    # [5, 6, 7, 8, 9, 0]
    # [6, 7, 8, 9]
    
    # 步長
    
    lst = [1,2,3,4,5,6,7,8,9,0]
    print(lst[0:5:2])  # List[i:j:n]代表:索引i - 索引j,以n為步長
    print(lst[::2])  # 按照2為步長,從第一個值開始截取lst數據
    print(lst[1::2])  # 按照2為步長,從第二個值開始截取lst數據
    # 輸出
    # [1, 3, 5]
    # [1, 3, 5, 7, 9]
    # [2, 4, 6, 8, 0]
    
    # 序列的基本內置全局函數
    
    lst = [1,2,3,4,5,6,7,8,9,0]
    print(len(lst))  # 列表元素個數10
    print(max(lst),min(lst),sum(lst))  # 返回列表的最大值、最小值、求和,這三個函數都只針對數字的list,9 0 45
    print(lst.index(3))  # .index(obj)方法:從列表中找出某個值第一個匹配項的索引位置
    
    lst = [1,1,2,3,3,4,4,4,4,5,6]
    print(lst.count(4))  # .count(obj)方法:計算值的出現次數,4
    

    No.3

    列表list常用操作

    # 列表的特征
    
    lst1 = [1,2,3,'a','b','c',[1,2,3]]
    # 可包含任意類型的對象:數值、字符串、列表等
    
    lst2 = [143,56,894,67,43]
    print(lst2[0],lst2[4],lst2[-1])
    # 通過下標索引訪問序列中的值 → 序列的順序是不能改變的,通過索引來定位列表的元素,143 43 43
    
    lst3 = [1,2,3]
    lst3 = lst3 * 3
    print(lst3)
    # 可隨意變換列表長度,相當于隨意指定新的列表,[1, 2, 3, 1, 2, 3, 1, 2, 3]
    
    lst4 = [1,2,['a','b']]
    # 可嵌套
    
    lst5 = [100,101,102]
    lst5[0] = 10
    print(lst5)
    # 可原位改變[10, 101, 102]
    
    # 列表與生成器
    
    print(range(5),type(range(5)))  
    # range()是生成器,指向了一個范圍
    # range(5)代表指向了0,1,2,3,4這幾個值
    # range(2,5)代表指向了2,3,4這幾個值,注意這里不是使用:
    # range(0,10,2)代表指向了0,2,4,6,8這幾個值,最后的2代表步長
    #輸出:range(0, 5) <class 'range'>
    lst = list(range(5))
    print(lst)
    # 通過list()函數生成列表
    # 輸出:[0, 1, 2, 3, 4]
    
    # 可變列表list常用操作 - 添加元素
    
    lst = list(range(10))
    lst.append('hello')
    print(lst)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello']
    # list.append() 添加元素
    
    lst.append(['a','b','c'])
    print(lst)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c']]
    lst.extend(['a','b','c'])
    print(lst)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c'], 'a', 'b', 'c']
    # 添加多個元素用.extend()方法:用新列表擴展原來的列表,注意和append()方法的區別
    
    # 可變列表list常用操作 - 刪除元素
    
    lst = ['Jack','Jack','Tom','Tracy','Alex','White']
    lst.remove('Jack')
    print(lst)#['Jack', 'Tom', 'Tracy', 'Alex', 'White']
    # .remove方法:移除列表中某個值的第一個匹配項
    
    del lst[3:5]
    print(lst)#['Jack', 'Tom', 'Tracy']
    # del語句:刪除list的相應索引值
    
    lst.clear()
    print(lst)#[]
    # 移除所有值
    
    # 可變列表list常用操作 - 插入元素
    
    lst = list(range(10))
    print(lst)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    lst.insert(3,'a')
    print(lst)#[0, 1, 2, 'a', 3, 4, 5, 6, 7, 8, 9]
    # x.insert(i,m)方法:在索引i處插入m,這里索引3代表第四個值
    
    lst.insert(5,[1,2,3])
    print(lst)#[0, 1, 2, 'a', 3, [1, 2, 3], 4, 5, 6, 7, 8, 9]
    # 插入一個列表元素
    
    # 可變列表list常用操作 - 復制
    
    lst = list(range(10))
    lst1 = lst
    lst1[2] = 'hello'
    print(lst,lst1)#[0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9] [0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9]
    # lst,lst1指向同一個列表
    
    lst = list(range(10))
    lst2 = lst.copy()
    lst2[2] = 'hello'
    print(lst,lst2)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9]
    # list.copy()方法:復制一個新的列表,lst,lst2指向兩個列表(雖然兩個列表值相同)
    
    # 可變列表list常用操作 - 排序
    
    lst1 = [12,45,32,98,45,66,3]
    lst2 = ["asd", "cxv", "ghv"]
    lst1.sort()
    lst2.sort()
    print(lst1,lst2)#[3, 12, 32, 45, 45, 66, 98] ['asd', 'cxv', 'ghv']
    # 默認升序排序/字母順序
    
    lst1.sort(reverse=True)
    lst2.sort(reverse=True)
    print(lst1,lst2)#[98, 66, 45, 45, 32, 12, 3] ['ghv', 'cxv', 'asd']
    # 參數reverse:反向排序,針對數字
    
    lst3 = sorted(lst1)
    lst3.append('hello')
    print(lst1,lst3)#[98, 66, 45, 45, 32, 12, 3] [3, 12, 32, 45, 45, 66, 98, 'hello']
    # 函數sorted():排序并復制
    

    今天就到這里,下次繼續哦~

    我不僅僅是一個碼

    客官!在看一下唄~

    版權聲明:本文為qq_21787049原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_21787049/article/details/106641505

    智能推薦

    深度學習干貨學習(2)—— triplet loss

    一、Triplet結構: triplet loss是一種比較好理解的loss,triplet是指的是三元組:Anchor、Positive、Negative: 整個訓練過程是: 首先從訓練集中隨機選一個樣本,稱為Anchor(記為x_a)。 然后再隨機選取一個和Anchor屬于同一類的樣本,稱為Positive (記為x_p) 最后再隨機選取一個和Anchor屬于不同類的樣本,稱為Negative...

    干貨 | Elasticsearch 趨勢科技實戰分享筆記

    少啰嗦,直接看東西。 1、Elasticsearch 索引的設計 1.1 單一索引還是基于時間的索引? 單一索引的問題: 1)不能更新Mapping。 比如:主分片數不可以修改(除非reindex)。 2)無法靈活、快速地擴展。 3)更適合固定、小型數據集。 基于時間的索引面臨的問題: 1)如何確定間隔? 數據量 變更頻率 默認嘗試每周為單位分割——建議 2)如何實施? 索...

    工程里學筆記(1)干貨!!!

    工程力學筆記(1)!!! 斜體樣式工程力學是理工類專業必須的一門學科。但是學習起來卻不是那么容易(別問我是怎么知道的),不少人在這里掛過科,所以,特把自己學習時的一些筆記發布出來,這只是一小部分,后續會有更新。希望大家多提寶貴意見! 一、緒論 這一部分主要是一些專業名詞和解釋,對于初學的同學,可以根據需要查閱(不用死記硬背) 說明:緒論中大部分出現的名詞,在后續對應的專門章節中,都會出現,所以現在...

    Java多線程總結筆記面試干貨

    一、線程的創建方式 1、繼承Thread類(不推薦):只能被單繼承,不推薦使用 2、實現Runable的接口(推薦):不需要返回值時,推薦使用 3、實現Callable接口(JDK1.5): 核心方法叫call()方法(相當于run()),有返回值,推薦使用 4、線程池:通過Executor 的工具類可以創建三種類型的普通線程池:固定大小的線程池、單線程池、緩存線程池 問題:線程調用start方法...

    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_...

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