您好,登錄后才能下訂單哦!
本篇內容主要講解“Python中有什么內置數據結構”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python中有什么內置數據結構”吧!
Python可謂是如今最流行的編程語言,甚至孩子們也可以從它開始學習趣味編程。Python類似英語的簡單語法使它成為一種通用語言,已在全世界各個領域被廣泛使用。
Python的萬能之處正在于其內置的數據結構,它使編碼變得簡單,不受數據類型限制,并可以根據需要操縱數據。首先,讓我們試著理解什么是數據結構?數據結構是能夠存儲、組織和管理數據的結構/容器,以便能夠有效地訪問和使用數據。數據結構就是收集數據類型。Python中有四種內置數據結構。它們是:
列表
字典
元組
集合
開發人員最常用的數據結構是列表和字典。接下來,讓我們詳細看看每一個數據結構。
1. 列表
Python列表是按順序排列的任意類型的項的集合。一個列表可以有重復的項,因為每個項都是使用索引訪問的,而且可以通過使用負索引逆向訪問該列項。列表是可變的,這意味著即使在創建了項之后,也可以添加、刪除或更改項;一個列表中還可以包含另一個列表。
(1) 創建列表:
列表可以通過將元素括在[ ]方括號中來創建,每個項之間用逗號分隔。以購物清單為例,創建列表的語法是:
#Creating a list fruits = ['Apple', 'Banana', "Orange"] print(type(fruits)) #returns type print(fruits) #prints the elements of the listOutput: <class 'list'> ['Apple', 'Banana', 'Orange']
(2) 訪問列表:
可以使用索引訪問列表中的項。列表中的每個項都有一個與之關聯的索引,具體取決于該項在列表中的位置。訪問列表中的項的語法:
#Access elements in the fruits listfruits = ['Apple', 'Banana',"Orange"] print(fruits[0]) #index 0 is the first element print(fruits[1]) print(fruits[2])Output: Apple Banana Orange
但是,索引不必總是為正。如果想逆向訪問列表,也就是按照相反的順序,可以使用負索引,如下所示:
#Access elements in the fruits list using negative indexesfruits = ['Apple','Banana', "Orange"] print(fruits[-1]) #index -1 is the last element print(fruits[-2]) print(fruits[-3])Output: Orange Banana Apple
如果必須返回列表中兩個位置之間的元素,則使用切片。必須指定起始索引和結束索引來從列表中獲取元素的范圍。語法是List_name[起始:結束:步長]。在這里,步長是增量值,默認為1。
#Accessing range of elements using slicingfruits = ['Apple', 'Banana',"Orange"] fruits #all elements ['Apple', 'Guava', 'Banana', 'Kiwi'] #output fruits[::1] #start to end with step 1 ['Apple', 'Guava', 'Banana', 'Kiwi'] #outputfruits[::2] #start to endwith step 2 basically index 0 & 2 ['Apple', 'Banana'] #output fruits[::3] #start to end with step 2 basically index 0 & 3 ['Apple', 'Kiwi'] #output fruits[::-1] #start to end with step 2 - reverse order ['Kiwi', 'Banana', 'Guava', 'Apple'] #output
(3) 向列表中添加元素:
可以使用append()、extend()和insert()函數向列表添加項。
#Adding elementsfruits = ['Apple', 'Banana', "Orange"]#Appendnew elements fruits.append('Kiwi') print(fruits) Output: ['Apple', 'Banana', 'Orange', 'Kiwi']#Insertelements in to the listfruits.insert(1,'Guava') #inserts Guava as secondelement is the list since the index is specified as 1 print(fruits) Output: ['Apple', 'Guava', 'Banana','Orange', 'Kiwi']
(4) 從列表中刪除項:
與添加元素類似,從列表中刪除元素也非常容易,可以使用del()、remove()和pop()方法實現。要清除整個列表,可以使用clear()函數。
del()函數刪除給定索引處的元素。
pop()函數從列表中刪除給定索引處的元素,也可以將刪除的元素賦值給變量。如果未指定索引值,則刪除列表中的最后一個元素。
remove()函數根據元素的值來刪除元素。
clear()函數清空列表。
#Deleting elements from the listfruits = ['Apple', 'Guava', 'Banana','Orange', 'Kiwi'] #del() function del fruits[3] #delete element at index 4 print(fruits) Output: ['Apple', 'Guava', 'Banana', 'Kiwi']#pop()function del_fruit = fruits.pop(2) print(del_fruit) print(fruits) Output: 'Banana' ['Apple', 'Guava', 'Orange', 'Kiwi'] #Remove function fruits.remove('Apple') print(fruits) Output: ['Guava', 'Banana', 'Orange', 'Kiwi'] #Clear() function fruits.clear() print(fruits) Output : [] # clears the list
其他函數:
在處理列表時,還可以使用其他幾個函數:
len()函數返回列表的長度。
index()函數查找第一次遇到的傳入值的索引值。
count()函數查找傳遞給它的值的個數。
sorted()和sort()函數用于對列表的值進行排序。sorted()具有返回類型,而sort()修改原始列表。
#Other functions for listnum_list = [1, 2, 3, 10, 20, 10] print(len(num_list)) #find length of list print(num_list.index(10)) #find index of element that occurs first print(num_list.count(10)) #find count of the element print(sorted(num_list)) #print sorted list but not change original num_list.sort(reverse=True) #sort original list print(num_list)Output: 6 3 2 [1, 2, 3, 10, 10, 20] [20, 10, 10, 3, 2, 1]
2. 字典
字典是另一種無序的數據結構,即元素的存儲順序與它們被插入的順序不同。這是因為索引值不能訪問字典中的元素。在字典中,數據以鍵值對的形式存儲,元素值是通過鍵訪問的。
圖源:unsplash
(1) 創建字典:
字典由冒號分隔的{}大括號或使用dict()函數編寫鍵和值被創建。
#Creating Dictionariesnew_dict = {} #empty dictionary print(new_dict) new_dict = {1: 'Python', 2: 'Java'} #dictionary with elements print(new_dict)Output: {} {1: 'Python', 2: 'Java'}
(2) 改變并增加鍵值對:
要更改字典的值,將使用鍵來訪問鍵,然后相應地更改值。要添加值,只需添加另一個鍵-值對,如下所示:
#Changing and Adding key, value pairslang_dict = {'First': 'Python','Second': 'Java'} print(lang_dict) lang_dict['Second'] = 'C++' #changing element print(lang_dict) lang_dict['Third'] = 'Ruby' #adding key-value pair print(lang_dict)Output: {'First': 'Python', 'Second': 'Java'} {'First': 'Python', 'Second': 'C++'} {'First': 'Python', 'Second': 'C++','Third': 'Ruby'}
(3) 訪問字典中的元素:
字典中的元素只能使用鍵訪問,可以使用get()函數或只是通過鍵來獲取值。
#Accessing Elementslang_dict = {'First': 'Python', 'Second': 'Java'} print(lang_dict['First']) #access elements using keys print(lang_dict.get('Second'))Output: Python Java
(4) 刪除字典中的鍵值對:
這些是字典中用于刪除元素的函數。
pop()-刪除值并返回已刪除的值
popitem()-獲取鍵值對并返回鍵和值的元組
clear()-清除整個字典
#Deleting key, value pairs in a dictionarylang_dict = {'First': 'Python','Second': 'Java', 'Third': 'Ruby'} a = lang_dict.pop('Third') #pop element print('Value:', a) print('Dictionary:', lang_dict) b = lang_dict.popitem() #pop the key-value pair print('Key, value pair:', b) print('Dictionary', lang_dict) lang_dict.clear() #empty dictionary print(lang_dict)Output: Value: Ruby #pop element Dictionary: {'First': 'Python','Second': 'Java'} Key, value pair: ('Second', 'Java') #popthe key-value pair Dictionary {'First': 'Python'} {} #empty dictionary
(5) 其他函數:
這是其他一些可以與字典一起使用的函數,用于獲取鍵值和鍵-值對等。
#Other functions for dictionarylang_dict = {'First': 'Python','Second': 'Java', 'Third': 'Ruby'} print(lang_dict.keys()) #get keys print(lang_dict.values()) #get values print(lang_dict.items()) #get key-value pairs print(lang_dict.get('First'))Output: dict_keys(['First', 'Second','Third']) dict_values(['Python', 'Java','Ruby']) dict_items([('First', 'Python'),('Second', 'Java'), ('Third', 'Ruby')]) Python
3. 元組
圖源:unsplash
元組與列表基本相同,不同的是,一旦數據進入元組,無論如何都不能更改。因此,一旦生成元組,就不能添加、刪除或編輯任何值。
(1) 創建元組:
使用()圓括號或tuple()函數創建元組。
#Creating Tuplesmy_tuple = (1, 2, 3) #create tupleprint(my_tuple)Output: (1, 2, 3)#Creating Tuplesmy_tuple = (1, 2, 3) #create tuple print(my_tuple)Output: (1, 2, 3)
(2) 訪問元組中的元素:
訪問元組元素與列表類似。
#access elementsmy_tuple2 = (1, 2, 3,'new') for x in my_tuple2: print(x) # prints all the elementsin my_tuple2print(my_tuple2) print(my_tuple2[0]) #1st element print(my_tuple2[:]) #all elements print(my_tuple2[3][1]) #this returns the 2nd character of the element atindex 3 print(my_tuple2[-1]) #last elementOutput: 1 2 3 new (1, 2, 3, 'new') 1 (1, 2, 3, 'new') e new
(3) 在另一元組中追加元素:
要追加值,可以使用'+'操作符。
#Appending elementsmy_tuple = (1, 2, 3) my_tuplemy_tuple = my_tuple + (4, 5, 6) #add elements print(my_tuple)Output: (1, 2, 3, 4, 5, 6)
(4) 元組賦值:
元組打包和解包操作很有用,執行這些操作可以在一行中將另一個元組的元素賦值給當前元組。元組打包就是通過添加單個值來創建元組,元組拆包則是將元組中的值分配給變量。
#tuple packing planets = ('Earth','Mars','Jupiter') #tuple unpackinga,b,c = planets print(a) print(b) print(c)Output: Earth Mars Jupiter
4. 集合
圖源:unsplash
集合是唯一的無序元素的集合。這意味著,即使數據重復一次以上,集合也只保留一次。
(1) 創建集合:
使用{ }花括號創建集合,并賦值。
#Creating setsnew_set = {1, 2, 3, 4, 4, 4, 5} #create set print(new_set)Output: {1, 2, 3, 4, 5}
(2) 向集合中添加元素:
使用add()函數賦值并添加元素。
#Adding elements to a Setnew_set = {1, 2, 3} new_set.add(4) #add element to set print(new_set)Output: {1, 2, 3, 4}
(3) 集合操作:
可以對一個集合執行的不同操作如下所示。
union()函數合并了兩個集合中的數據。
intersection()函數只查找在這兩個集合中同時出現的數據。
difference()函數刪除兩個集合中同時存在的數據,并只輸出在傳遞的集合中存在的數據。
symmetric_difference()函數執行與difference()函數相同的操作,但是輸出在兩個集合中保留的數據。
clear()函數清空該集合。
#Operations on set my_set = {1, 2, 3, 4} my_set_2 = {3, 4, 5, 6} print(my_set.union(my_set_2)) print(my_set.intersection(my_set_2)) print(my_set.difference(my_set_2)) print(my_set.symmetric_difference(my_set_2)) my_set.clear() print(my_set)Output: {1, 2, 3, 4, 5, 6} {3, 4} {1, 2} {1, 2, 5, 6} set()
到此,相信大家對“Python中有什么內置數據結構”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。