1. 程式人生 > >Python資料型別及常用集合

Python資料型別及常用集合

Python 中有六個標準的資料型別:

  • Number(數字)
  • String(字串)
  • List(列表)
  • Tuple(元組)
  • Sets(集合)
  • Dictionary(字典)

在Python中定義變數的時候,變數是無需宣告的,並且變數沒有型別指明,我們所說的資料型別是指變數所儲存的記憶體中的物件型別,比如是存的數字,字串或者是陣列集合。其中Number 又支援 int、float、bool、complex(複數)

判斷Python 資料型別方法:
import types
type(x) is types.IntType # 判斷是否int 型別
type(x) is types.StringType #是否string型別
type(x) is types.TupleType #是否tuple型別
type(x) is types.ListType #是否list型別
type(x) is types.FloatType #是否float 型別
………

Python中常用的幾個資料集合:

  • list
  • tuple
  • set
  • dictionary

1.list

list是Python中最常見的型別了。

  • 建立
list1 = ["str1", "str2", "str3"]
list2 = ["name", "ID", 1024, 1080]
list3 = [1, 2, 3, 4, 5]
list_null = []  #空list
list_one_ele = [1] #單元數list
  • 訪問元素
>>> list1[0] # 訪問list1列表中的第一個元素
'str1'
>>> list2[-1
] #訪問list2列表中的最後個元素,負數idx從右邊開始數 1080 >>> list3[-2] #訪問list3列表中的倒數第二個元素 4 >>> list3[1:] [2345]
  • 增減元素
    追加到末尾:
>>> list1.append("new_element")

追加到指定位置:

>>> list2.insert(1, "new_element")

刪除指定元素:

>>> del list1[1]
>>> list1.remove('str2'
)

刪除並返回最後一個元素:

>>> list1.pop()
  • 修改元素

直接賦值相應元素

>>> list2[1] = 'date'
  • 巢狀list

list可以組合巢狀,即一個大的list可以包含若干個小的list,大list中每個元素也是list。其實單個數也可以看出一個只包含一個元素的list。

>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> x = [a, b]
>>> len(x) #總共list個數
2
>>> len(x[0]) #第一個list長度
3
>>> x[0]
[1, 2, 3]
>>> x[1][0]
'a'
>>> y = [x, 'str', 3]
>>> len(y)
4
  • list 運算

    Python表示式 結果 描述
    len([1, 2, 3]) 3 list的長度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 組合
    [‘Hi~’] * 4 [‘Hi~’, ‘Hi~’, ‘Hi~’, ‘Hi~’] 重複
    3 in [1, 2, 3] True 元素是否存在於list中
    for x in [1, 2, 3]: print(x, end=” “) 1 2 3 遍歷list中的元素

‘+’相當於list追加組合,’*’ 相當於重複list

2.tuple(元組)

tuple基本是list類似,但是tuple最大的不同是tuple是不可修改的,不能增減元素,不能修改其中的元素

  • 建立
tuple1 = ("str1", "str2", "str3")
tuple2 = ("name", "ID", 1024, 1080)
tuple3 = (1, 2, 3, 4, 5)
tuple_null = () #建立空的tuple
tuple_one_ele = (1,) #單元數tuple,注意需要加逗號,不同於list
  • 增減元素
    不可增減元素。但是可以連線組合多個tuple,並且只能刪除整個tuple
>>> t1 = (1, 2, 3)
>>> t2 =('a', 'b', 'c')
>>> t3 = t1 + t2
>>> t3
(1, 2, 3, 'a', 'b', 'c')
>>> del t3
  • tuple運算操作
    tuple的基本操作和list一樣,可以組合’+’,’*’等

3.dictionary

字典包含key 和 value,並且內容可變。其格式如下:

格式:d = {key1 : value1, key2 : value2 }
例子:d = {1:"a",  2:"b", 3:"c"}

字典的特點:
1.key值必須是唯一的,但是value不必,可以重複。
2.key可以是任何資料格式,如數字,字串,tuple,但是不能為list, 要保證key不可變,但是value可以是任何型別包括list。

  • 元素訪問

通過key值來獲取元素value:

>>> d = {"id": 2, "name":"Tom", "age": 18}
>>> d["name"]
'Tom'

通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('sex')
>>> d.get('sex', -1)
-1
  • 修改元素value
    通過key獲取value來修改:
>>> d["age"] = 20
>>> d
{'id': 2, 'name': 'Tom', 'age': 20} 
  • 增減元素

字典增加元素很簡單,直接設定新的key值的value:

>>> d["new_key"] = 10
>>> d
{'id': 2, 'name': 'Tom', 'age': 20, 'new_key': 10} 

刪除字典的key和整個字典:

del dict['Name'] # 刪除鍵 'Name'
dict.clear()     # 刪除字典
del dict         # 刪除字典
  • dict和list的比較

dict的查詢和插入的速度極快,不會隨著key的增加而變慢。但是需要佔用大量的記憶體,記憶體浪費多。相反,list查詢和插入的時間隨著元素的增加而增加。但是佔用空間小,浪費記憶體很少。

4.set

set是一個無序不重複元素集,可新增,刪除資料,還可以計算交集、差集、並集等。set不能新增list, dictionary這種可變的元素,其餘包括tuple都可以新增。

  • 建立
class set([iterable]) 
引數說明: iterable -- 可迭代物件物件;

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
  • 增減元素
>>> s.add(4) #注意如果是已經存在的資料,則不會繼續新增
>>> s
{1, 2, 3, 4}
>>> s.remove(2)
>>> s
{1, 3, 4}
  • 交集、差集、並集操作
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2  # 交集
{2, 3}
>>> s1 | s2  # 並集
{1, 2, 3, 4}
>>> s1 - s2  # 差集
{1}