python入門第五課:數字列表的操作、列表切片與複製、元組的遍歷

2020-12-05 傫傫若遺

本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes

一、數字列表的操作

我們經常需要處理純數字的列表,這就不得不提到一個很常用的函數range(),用這個函數可以批量產生數字,比如我們想自動生成1到10的數字,就要用range(1,11),可以輸出1到10,見下面的代碼:

for value in range(1,11):print(value)

上面代碼有個地方要特別注意,range函數內是(1,11),而不是(1,10),這裡很容易寫錯。

上面雖然輸出了1-10這些數字,但還不是列表的形式。需要使用list()函數轉換一下才能形成列表,寫成這樣list(range(1,11)),見下面代碼:

numbers = list(range(1,11))print(numbers)

Range()函數可以指定步長,比如我們每個2位取一個值,可以寫成這樣:range(1,11,2),輸出結果是:[1, 3, 5, 7, 9]。

利用range()函數幾乎可以產生任何的數列,比如我們需要產生1到10的平方數列(Python中兩個星號(** )表示乘方運算),可以這麼寫:

squares = [] #先定義一個空列表for value in range(1,11):squares.append(value**2) #把每個元素添加到列表的尾部print(squares) #列印最終的列表內容

可以利用常用的統計函數min()、max()、sum()進行列表統計,見下面的代碼:

digits = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]print('列表中最小值是:',min(digits))print('列表中最大值是:',max(digits))print('列表所有數總和是:',sum(digits))

再介紹一個概念叫「列表解析」,它是列表生產的一種簡寫形式,還是生產平方的例子,可以用下面代碼:

squares = [value**2 for value in range(1,11)]

這個代碼和上面for循環的前三行代碼是等價的,初學者用不慣不要緊,但是看到這個寫法需要知道什麼意思,執行結果如下:

數字列表的相關操作就介紹到這裡,下面介紹列表的切片操作。

二、列表的切片

切片的意思就是只訪問列表的部分元素,就像切黃瓜,如果我們只需要黃瓜的一小段,就會用到切片的概念,列表切片的操作符如下:

[開始位置:結束位置]

廢話不多說,直接上代碼:

digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print('元素列表',digits)print('取列表中第3到第6個位置的元素',digits[2:6])print('取列表開始到第6個位置的元素',digits[:6])print('取第三個位置開始到列表結束',digits[2:])print('取倒數三個數',digits[-3:])print('末尾三位數不取',digits[:-3])print('取倒數第四個到倒數第2個之間的值',digits[-4:-1])print('取全部的列表',digits[:])

知道怎麼切片,就知道怎麼遍歷切片了,只需要在for循環裡面將全部的列表換成切片的列表就行,見下面的代碼:

digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]for data in digits[2:6]: #取列表中第3到第6個位置的元素print(data)

三、列表的複製

可以利用切片的功能實現列表的複製,下面代碼的digits2 = digits1[:]就是將digits1複製一份:

digits1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]digits2 = digits1[:] #複製列表#下面在每個列表的尾部加一個不同的值區分digits1.append(15)digits2.append(19)#然後把兩個列表的值都列印出來,會發現確實是兩個不同的列表print(digits1)print(digits2)

為什麼不能用digits2 = digits1這種方式複製呢?大家可以自己思考一下。

四、元組

Pyhon中與列表很類似的一個數據類型叫「元組」,它們的區別在於:列表的元素是可以改變的(增刪改),元組的元素不能改變。元組的遍歷代碼和列表完全一樣。元組用一個括號包含起來,比如下面就是一個元組:

(1,2,54,3,6,4)

我們可以這麼遍曆元組,下面的代碼出了將[]改為()外,其他代碼都和列表遍歷一模一樣。

digits = (1,2,54,3,6,4)for value in digits:print(value)

長按文末點讚送三連,支持本文作者多寫點~

#Python入門教程#

相關焦點

  • Python列表和元組
    @Author :RunsenPython列表和元組總結什麼是列表和元組列表是動態的,長度大小不固定,可以隨意地增加、刪減或者改變而元組是靜態的,長度大小固定,無法增加刪減或者改變l = [1, 2, 3, 4]l.append(5) # 添加元素 5 到原列表的末尾l[1, 2, 3, 4, 5]```Python 中的列表和元組都支持負數索引,列表和元組都支持切片操作
  • python入門第四課:列表的排序、元素遍歷
    本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes本節介紹列表的操作,包括列表的排序、元素遍歷等操作。print(Mylists,' 升序排列')Mylists.sort(reverse=True) #加入參數reverse=True後按降序排列print(Mylists,' 降序排列')本例是按數字排序
  • python數據類型總結——列表
    python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。通過for語句,可以遍歷列表中的每個元素,如下:列表遍歷這種遍歷也可以用於字符串
  • Python基礎教程(一) - 序列:字符串、列表和元組
    序列類型操作符成員關係操作符(in、not in):成員關係操作符是用來判斷一個元素是否屬於一個序列的。對於字符串來說就是判斷一個字符是否屬於一個字符串;對於列表和元組,就代表一個對象是否屬於該對象。切片操作符([],[:]):訪問某一個數據元素的語法如下:sequence[index],sequence是序列的名字,index是想要訪問的元素對應的偏移量。
  • Python實驗課:字典數據的複製與遍歷
    一、實驗目的及內容(1)字典的複製(2)字典的遍歷二、實驗過程1、字典的複製(1)啟動IDLE開發環境,並新建一個Python模塊文件。字典的複製就是在原有字典的基礎上,創建一個新的字典。Python提供了兩種方式來複製字典:一種方式是淺複製方式;一種方式是深複製方式。我們先來看淺複製方式,淺複製只是把當前字典內的列表、元組等可迭代對象的引用複製給新字典,當原字典的可迭代對象內容改變時,新字典的可迭代對象內容也會改變。字典對象的copy()方法可以淺複製一個字典數據。
  • 11個python列表方法全面解析!
    來源:AI入門學習列表是python裡很重要的數據類型,其中的方法總共有11個,數量掌握這些方法,對數據的處理效率會大大提高,現在分享給大家。參數:object可以添加 列表,字典,元組,集合,字符串等。#append()函數的操作對象是原列表。
  • python字符串、列表內的方法使用
    ascii碼,三種編碼格式Unicode、utf-8、gbkascii:字母,數字,特殊字符:1個字節,8位Unicode:16位 兩個字節 升級 32 位 四個字節utf-8:最少一個字節 8位表示。
  • Python切片高級特性完全解讀
    公眾號Python貓, 專注python技術、數據科學和深度學習,力圖創造一個有趣又有用的學習分享平臺。眾所周知,我們可以通過索引值(或稱下標)來查找序列類型(如字符串、列表、元組…)中的單個元素,那麼,如果要獲取一個索引區間的元素該怎麼辦呢?切片(slice)就是一種截取索引片段的技術,藉助切片技術,我們可以十分靈活地處理序列類型的對象。
  • Python 進階:全面解讀高級特性之切片!
    貓(ID:python_cat)眾所周知,我們可以通過索引值(或稱下標)來查找序列類型(如字符串、列表、元組…)中的單個元素,那麼,如果要獲取一個索引區間的元素該怎麼辦呢?切片的高級用法一般而言,切片操作的返回結果是一個新的獨立的序列(PS:也有例外,參見《Python是否支持複製字符串呢?》)。以列表為例,列表切片後得到的還是一個列表,佔用新的內存地址。
  • 第一次把 Python 的切片理解得如此透徹
    以列表為例,列表切片後得到的還是一個列表,佔用新的內存地址。當取出切片的結果時,它是一個獨立對象,因此,可以將其用於賦值操作,也可以用於其它傳遞值的場景。但是,切片只是淺拷貝 ,它拷貝的是原列表中元素的引用,所以,當存在變長對象的元素時,新列表將受制於原列表。
  • Python基礎教程(一) - 快速入門
    /usr/bin/python為Linux系統下Python解釋器的路徑,通常python解釋器的路徑安裝在/usr/local/bin或/usr/bin目錄下。加、減、乘、除、取餘都是標準操作符,Python當然也有標準比較操作符,比較運算根據運算的真假返回布爾值。
  • 詳解Python列表及其運算
    ● 掌握列表的聲明和賦值● 掌握列表元素的添加、更新、刪除、遍歷操作● 掌握列表的排序及比較操作Python列表是線性表的一種表示方式。一個列表是n個數據元素的有限序列(a1,a2,…,an)。Python列表中所存儲元素的具體含義,在不同的情況下可以不同,它可以是一個數,也可以是字符串,甚至是更複雜的信息。它可以存儲Python的標準類型,也可以存儲自定義的數據結構及對象。Python對列表也提供了非常便捷的操作,列表可以執行pop、sort、append、remove等操作,也可以合併其它列表,或者將列表切片(切分出子列表)。
  • 乾貨| 完美Python入門基礎知識點總結
    Python有五個標準的數據類型Numbers(數字)String(字符串)List(列表)Tuple(元組)Dictionary(字典)Python支持四種不同的數字類型int(有符號整型)long(長整型[也可以代表八進位和十六進位])float(浮點型)complex(複數)
  • Python 讓列表逆序排列的 3 種方式
    就像你看到的這樣,調用 list.reverse() 的返回值是 None ,它逆序的結果直接體現在原來的列表裡面。這種方式,有好處也有壞處。好處是節省內存使用,因為我們不需要重新申請空間來保存最後的結果。壞處是,我們修改了原來的數據,如果我們後面要使用原數據的話不方便。(雖說再倒序一次就行,但畢竟使用了多餘的操作)。從可讀性來說,我喜歡這種方式。
  • Python數據類型串講(中)
    python中的內建序列有6種:列表、元祖、字符串、Unicode字符串、xrange對象、buffer對象,其中列表和元祖是最常見的序列,應重點掌握。字符串在上一篇文章中已簡單介紹,下面將以字符串為例,對序列的通用操作進行詳講。
  • python入門第三課:列表元素的訪問、增加、刪除與修改
    本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes列表也是一種數據類型,用[]包含數據進行表示,比如下面就是一個列表['蘋果','香蕉','橘子'下面介紹列表的基本操作:一、訪問列表元素可以通過列表的元素序號(或叫索引)來訪問列表,比如我們需要訪問列表fruits = ['蘋果','香蕉','橘子','葡萄'
  • python:在函數中修改列表和禁止函數修改列表
    1.了不起的魔術師:編寫一個名為make_great()的函數,對魔術師列表進行修改,在每個魔術師的名字中都加入字樣「the Great」。調用函數show_magicians(),確認魔術師列表確實變了。
  • Python數據類型之列表list
    # 列表是python中最基本的數據結構,它是一個有序序列,序列中的每個元素都分配一個數字(位置,索引)# 1、我們可以使用 方括號,中括號[]來創建列表# 2、我們可以直接將序列放在list(seq)
  • 一日一技:從Python列表中刪除重複值
    使用Dict方法 從列表中刪除重複項使用for循環 從列表中刪除重複項使用列表推導式 從列表中刪除重複項使用Numpy unique()方法 從列表中刪除重複項。使用Pandas方法 從列表中刪除重複項使用enumerate()刪除重複值使用Set()方法從列表中刪除重複值要從列表中刪除重複值,可以使用內置函數set()。 set()方法可以返回不同的元素.
  • Python基礎學習之常用六大數據類型
    Python六大常用數據類型: int 整數 float 浮點數 str 字符串 list 列表 tuple 元組 dict 字典講解這些先說一下python中的變量與變量名。變量其實本質上是一個具有特殊格式的內存,變量名則是指向這個內存的別名。python中的變量不需要聲明,所有的變量必須賦值了才能使用。