您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python元組和列表有哪些區別”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python元組和列表有哪些區別”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
元組和列表都是 Python 中的內置數據結構。它們是允許您通過存儲一個或多個項目的有序集合來組織數據的容器。
元組的類為“元組”, <class 'tuple'>,
列表的類為“列表”, <class 'list'>。
您可以使用type()內置函數并將對象作為要測試的參數傳遞。這使您可以檢查它是元組還是列表。
假設您創建了一個名為 的元組my_tuple。您可以像這樣檢查它的類型:
>>>type(my_tuple) #output <class 'tuple'>
這對于調試特別有用。
現在讓我們看看元組和列表之間的其他一些相似之處。
正如我之前提到的,元組和列表確實相似,它們共享一些我們現在將介紹的功能。
元組和列表可以為空,也可以在單個變量下包含一個甚至多個項目。
唯一的區別在于語法:您可以通過用左括號和右括號包圍來創建元組(),而列表則由左右方括號[]表示和定義。
要創建空元組,您可以單獨使用括號()、 或tuple()構造函數方法。
>>>type(()) <class 'tuple'> >>>my_tuple = () >>>type(my_tuple) <class 'tuple'> #or.. >>>my_tuple = tuple() >>>type(my_tuple) <class 'tuple'>
要創建一個空列表,您可以單獨使用兩個方括號或調用list()構造函數方法。
>>>type([]) <class 'list'> >>>my_list = [] #or.. >>>my_list = list()
當用一個 item創建一個元組時,不要忘記在最后添加一個逗號。
>>>age = (28,)
如果您使用該tuple()方法創建元組,請不要忘記它需要雙括號。
>>>age = tuple((28,)) >>>type(age) <class 'tuple'>
如果不添加尾隨逗號,Python 將不會將其創建為元組。
>>>age = (28) >>>type(age) <class 'int'>
當創建一個列表一個項目,你不必擔心加后面的逗號。
>>> age = [28] >>> type(age) <class 'list'>
存儲的項目通常性質相似,并以某種方式相互關聯。
您可以創建僅包含字符串序列、整數序列或布爾值序列的元組或列表,序列中的每一項都用逗號分隔。
您還可以創建包含不同數據類型混合的元組或列表。
>>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False] #or.. >>>my_information = list(("Dionysia",27,True,"Lemonaki",7,"Python",False)) print(my_information) ['Dionysia', 27, True, 'Lemonaki', 7, 'Python', False]
列表和元組可以包含重復項,值可以重復出現多次。
>>>information = ("Jimmy",50,True,"Kate",50) >>>print(information) ('Jimmy', 50, True, 'Kate', 50) or.. >>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False,27,"Python",27]
如果你忘記逗號,你會得到一個錯誤:
>>>information = ("Jimmy" 50,True,"Kate",50) File "<stdin>", line 1 >>>information = ("Jimmy" 50,True,"Kate",50) ^ SyntaxError: invalid syntax
>>>my_information = ["Dionysia" 28,True,"Lemonaki",7,"Python",False] File "<stdin>", line 1 my_information = ["Dionysia" 28,True,"Lemonaki",7,"Python",False] ^ SyntaxError: invalid syntax
要檢查長度并確定元組或列表中有多少項,請使用該len()方法。
>>>my_information = ["Dionysia",27,True,"Lemonaki",7,"Python",False,27,"Python",27] >>>len(my_information) 7
本質上,在創建元組或列表時,正如我之前提到的那樣,許多值被“打包”到一個變量中。
>>>front_end = ("html","css","javascript")
這些值可以“解包”并分配給各個變量。
>>>front_end = ("html","css","javascript") >>>content,styling,interactivity = front_end >>>content 'html' >>>styling 'css' >>>interactivity 'javascript'
確保您創建的變量與元組/列表中的值的數字完全相同,否則 Python 會拋出錯誤:
>>>front_end = ("html","css","javascript") >>>content,styling = front_end Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 2) #or.. >>>front_end = ("html","css","javascript") >>>content,styling,interactivity,data = front_end Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: not enough values to unpack (expected 4, got 3)
如前所述,元組和列表都是項目的有序集合。
順序是固定不變的,并且在程序的整個生命周期中都保持不變。
指定項目的順序自創建之時起將始終保持不變。
元組和列表中的每個值都有一個唯一標識符,也稱為索引。
因此,可以通過引用該索引來訪問元組和列表中的每個項目。
Python(以及大多數編程語言和一般計算機科學)中的索引從0開始.
因此,第一項的索引為0,第二項的索引為1,依此類推。
將元組或列表的名稱寫入方括號中,然后將索引的名稱寫入方括號中。
>>>names = ("Jimmy","Timmy","John","Kate") >>>names[2] 'John'
或者像這樣:
>>>programming_languages = ["Python","JavaScript","Java","C"] >>>programming_languages[0] 'Python' >>>programming_languages[1] 'JavaScript'
好的,既然我們已經看到了它們的相似之處,現在讓我們看看元組和列表的不同之處。
元組在 Python 中是不可變的,這意味著一旦你創建了一個元組,它里面的項目就不能改變。
元組不能不斷改變。
如果您嘗試更改其中一項的值,則會出現錯誤:
>>>names = ("Jimmy","Timmy","John","Kate") >>>names[2] = "Kelly" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
由于元組無法更改,因此您無法添加、替換、重新分配或刪除任何項目。
這也意味著元組具有固定長度。它們的長度在整個程序的生命周期中永遠不會改變。
如果您希望集合中的數據為只讀、永不更改并始終保持不變,則元組非常適合使用。
由于這種能力和數據永遠不會改變的保證,元組可以用在字典和集合中,這要求包含在其中的元素是不可變的類型。
另一方面,您可以輕松更改和修改列表,因為列表是可變的。
這意味著列表是可變的——您可以將項目添加到列表、從列表中刪除項目、移動項目以及在列表中輕松切換它們。
當您希望數據靈活或不總是保持不變并在需要時進行修改時,列表非常有用。
列表支持各種內置的 Python 方法,這些方法對列表執行某些您不能在元組上使用的操作。
這意味著列表的長度和大小在程序的整個生命周期中增長和縮小。
現在讓我們看看一些更改列表的簡單方法。
由于列表是可變的,因此您需要了解更新其中數據的一些基本方法。
要更新列表中的單個特定項目,請在方括號中引用其索引號,然后為其分配一個新值。
#general syntax >>>list_name[index] = new_value >>>programming_languages = ["Python","JavaScript","Java","C"] >>>print(programming_languages) ['Python', 'JavaScript', 'Java', 'C'] >>>programming_languages[2] = "C++" >>>print(programming_languages) ['Python', 'JavaScript', 'C++', 'C']
Python 中有一些內置方法可以將項目添加到列表中。
append()方法將一個新項目添加到列表的末尾。
#general syntax >>>list_name.append(item) >>>programming_languages = ["Python","JavaScript","Java","C"] >>>print(programming_languages) ['Python', 'JavaScript', 'Java', 'C'] >>>programming_languages.append("C++") >>>print(programming_languages) ['Python', 'JavaScript', 'Java', 'C', 'C++']
要在特定位置添加一項,請使用insert()方法。
這將在給定位置的列表中插入一個項目。列表中在您要添加的項目之后的其余元素都被向右推了一個位置。
#general syntax >>>list_name.insert(index,item) >>>names = ["Cody","Dillan","James","Nick"] >>>print(names) ['Cody', 'Dillan', 'James', 'Nick'] >>>names.insert(0,"Stephanie") >>>print(names) ['Stephanie', 'Cody', 'Dillan', 'James', 'Nick']
如果要向列表中添加多個項目,請使用extend()方法。
這會在列表的末尾添加一個可迭代對象。例如,您可以在現有列表的末尾添加一個新列表。
#general syntax >>>list_name.extend(iterable) >>>programming_languages = ["Python","JavaScript"] >>>more_programming_languages = ["Java","C"] #add more_programming_languages to programming_languages >>>programming_languages.extend(more_programming_languages) >>>print(programming_languages) ['Python', 'JavaScript', 'Java', 'C']
Python 中有兩種內置方法可用于從列表中刪除項目。
一是remove()方法。這將刪除您指定的項目的第一個實例。
#general syntax >>>list_name.remove(item) >>>programming_languages = ["Python", "JavaScript", "Java", "C"] >>>print(programming_languages) ['Python', 'JavaScript', 'Java', 'C'] >>>programming_languages.remove("Java") >>>print(programming_languages) ['Python', 'JavaScript', 'C'] #deletes only first occurence >>>programming_languages = ["Python", "JavaScript", "Java", "C","Python"] >>>programming_languages.remove("Python") >>>print(programming_languages) ['JavaScript', 'Java', 'C', 'Python']
另一種方法是使用pop()方法。
不傳遞參數,它將刪除列表中的最后一項。
您可以將要刪除的特定項目的索引作為參數傳入。
在這兩種情況下,都會返回移除的值,這很有用。如果需要,可以將其存儲在變量中以備后用。
>>>programming_languages = ["Python", "JavaScript", "Java", "C"] >>>programming_languages.pop() 'C' >>>print(programming_languages) ['Python', 'JavaScript', 'Java'] #store returned value in a variable >>>programming_languages = ["Python", "JavaScript", "Java", "C"] >>>fave_language = programming_languages.pop(0) >>>print(fave_language) Python
讀到這里,這篇“Python元組和列表有哪些區別”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。