楊菲菲


摘要:Python功能強大,應用到各行各業,在很多計算機相關專業都開設此課程。文中簡要介紹了Python語言的內置數據結構,使用分類、對比教學方法詳細分析了內置數據結構的操作,希望對Python語言的教學有幫助。
關鍵詞:Python;內置數據結構;分類;對比教學方法
中圖分類號:G642 文獻標識碼:A
文章編號:1009-3044(2019)30-0130-03
1重要性
Python語言是一門跨平臺、開源、免費的解釋型高級動態編程語言,在八十年代末和九十年代初設計出來后,經過了快速的發展,到目前為止,在多個語言排行榜中位居前三,功能超級強大,應用到各行各業。目前在高校計算機相關專業的人才培養中,Java語言、c語言、Python語言一般都會開設。在教學中發現,相對于java語言、c語言,Python語言有自己的特點,特別是在內置數據結構這方面,相對于其他兩門語言比較復雜,同時這些數據結構是python語言的特色,也是其能夠靈活應用在各個行業領域的重要原因,要掌握python語言,必須首先要把熟練使用這些內置數據結構。同時,由于在很多高校python課程屬于比較新的課程,針對此課程的教學研究也比較少。
2python的內置數據結構
數據結構是可以處理一些數據的結構,或者是用來存儲一組相關數據的。Python中的內置數據結構有列表、元組、字典、集合,熟練掌握它們的用法可以更加快速的解決實際問題。
2.1列表(1ist)
列表由一系列按特定順序排列的元素組成,與C語言中的數組不同的是,列表可以自動進行內存擴展或收縮,保證元素之間沒有縫隙。
列表中的元素可以各不相同,可以存儲整數、實數、字符串等基本類型,也可以是列表、元組、字典、集合以及其他自定義類型的對象,并且列表中數據保存的是數據的指針。
在形式上,列表的所有元素都放在一對口中,元素之間用逗號進行間隔。
列表的元素可以進行增刪改查,也可以按照索引對其進行訪問。
2.2元組(tupIe)
元組與列表類似,也是保存的數據的指針,不同的是元組在內存中申請的是固定地址,不可變更,不能修改和刪除元組中的某個元素,只能創建和刪除整個元組。
元組里可以存放的元素的數據類型同列表一樣,值得注意的是,當元素是類似列表這種可變序列時,情況就不一樣了,元組里面的列表是可以對列表進行修改、增加、刪除操作的。
在形式上,元組的所有元素放在一對()里面,元素之間用逗號進行間隔。
元組可以通過索引進行訪問,不能進行元素的修改、添加、刪除,可以對整個元組進行刪除操作。
2.3字典(dictionary)
字典是一系列的鍵值對,類似于java中的map。字典中的每個元素包含鍵和值兩部分,表示一種映射或對應關系,鍵值對是沒有順序的。
在形式上,每個元素的鍵和值用冒號分隔,不同元素之間用逗號分隔,所有元素放在一對大括號{}中。
字典中的鍵可以是python中任意不可變數據,如整數、實數、復數、字符串、元組等,不能使用列表、集合、字典或其他可變類型作為字典的鍵。
字典的鍵不允許重復,值是可以重復的。
2.4集合(set)
集合是沒有順序的簡單對象的聚集嘲。集合更接近數學上集合的概念。集合中每個元素都是無序的、不重復的任意對象。
集合中只能是包含數字、字符串、元組等不可變類型的數據,而不能包含列表、字典、集合等可變類型的數據,相當于字典中的鍵。
在形式上,集合中所有的元素放在一對大括號{}中,元素之間用逗號分隔。
對集合可以進行增加刪除元素,也可以進行求兩個集合的交集、并集、差集等運算。
3內置數據結構的教學
Python中的數據結構比較多而且比較復雜,對于這四種內置的數據結構可以采用分類教學法、比較教學法。將其按照有序、無序和可變、不可變以及元素是否重復進行劃分,介紹它們的使用方法。
3.1有序、無序
有序無序的序指的是元素可以在整個序列中是否有序,針對其使用,就是是否可以通過索引的方式來方位訪問元素。
在這四種數據結構中,列表、元組都是有序,字典和集合是無序。有序的數據結構在對元素進行操作時要掌握索引和切片兩個概念。
(1)雙向索引。索引不陌生,在c語言和java語言的數組都出現過,python中的索引有所不同,支持雙向索引,第一個元素下標為0,第二個元素為1,如果使用負索引,則最后一個元素下標為一1,倒數第二個元素下標為一2,以此類推。
(2)切片。切片也是python新增加的特色。切片適用于列表、元組、字符串等類型,應用于列表具有最為強大的功能。可以使用切片來截取列表中的任何部分元素,也可以通過切片來修改和刪除列表中的部分元素。切片有三個重要參數:開始位置,截止位置,切片的步長。
3.2可變、不可變
可變、不可變指的是序列中的元素是不是可以增加、刪除、修改操作。在這四種數據結構中,列表、字典、集合是可變的,元組是不可變的。
(1)增加元素
列表增加元素可以使用append方法尾部追加一個元素,使用insert方法向列表任意指定位置插入一個元素,使用extend方法將另一個列表中的所有元素追加至當前列表的尾部。這三種方法的共同點是在原地操作,不影響列表對象在內存中的起始位置。不同地方是它們的執行效率不同,insert方法如果在中間位置進行插入,效率比較低下,因為該位置后的所有元素都要移動,操作時要盡量避免在列表中間位置進行插入操作。
字典和集合都是無序的,所以在增加元素時不會考慮到位置問題。字典增加元素時,比較簡單的方法是字典名[鍵名]=值名即可,update方法也可以。集合使用add方法增加元素,如果集合中已有,則忽略掉,也可以使用update方法合并另外一個集合中的元素到當前集合中。
(2)刪除元素
列表刪除元素可以使用pop方法刪除最后一個元素,也可以通過索引的方式刪除指定位置的元素,remove方法用來刪除列表中第一個與指定值相等的元素,只是刪除第一個,clear方法用于清空列表,也可以使用del命令來刪除列表的指定元素和列表。如果刪除后還希望使用元素,使用pop方法。
字典刪除元素可以使用pop方法和popitem方法彈出并刪除指定的元素,clear方法可以清空字典里面所有的元素,也可以使用del命令來刪除字典中指定鍵值對和刪除整個字典。
集合刪除元素可以使用pop方法用于隨機刪除并返回集合中的一個元素,如果集合為空則拋出異常,remove方法用于刪除集合中的指定元素,如果不存在則拋出異常,discard方法從集合中刪除指定元素,所不同的是,如果元素不存在則忽略該操作,clear方法清空集合刪除所有元素。使用del命令刪除整個集合,但是不能用del命令刪除集合中的指定元素。
(3)修改元素
修改元素對于可變序列來講,可以直接使用索引找到指定元素進行修改。對于字典修改元素時可以使用update方法來進行修改,同時如果字典中沒有該鍵值對還可以添加的功能。
集合不涉及到修改元素。
3.3總結
使用分類教學法、對比教學法對四種內置數據結構的操作進行總結歸類如下表所示:
對于不可變序列,不涉及到增加、刪除、修改操作,對于可變序列中,對比之后發現,列表提供的方法比較多,刪除元素都可以使用pop方法彈出元素使用,都可以使用clear方法清空序列,都可以使用del命令刪除序列。
4結束語
Python的使用非常廣泛。通過簡要介紹Python語言的內置數據結構,使用分類、對比教學方法詳細分析了內置數據結構的操作,希望對Python語言的教學有幫助。