python 數據類型 datatype


 python  數據類型 datatype

  1. 列表list

  2. 元組tuple

  3. 集合set

  4. 字典dictionary

  5. 字符串string


 

一、列表list

list :python的一種數據類型。是可變的,有序的對象。可以刪除和增加元素。

1 列表常用的幾種方法

list.append(x)   

list.extend(iterable)

>>> ls=[1,2,'a',3]
>>> ls.append('b')
>>> ls
[1, 2, 'a', 3, 'b']
>>> t=(3,7)
>>> ls.extend(t)
>>> ls
[1, 2, 'a', 3, 'b', 3, 7]
>>> 

 

list.remove(x)     從列表中刪除x 元素

list.pop(i)            返回刪除的元素的值,i為索引號 ,如果不指定參數,默認從列表最后開始刪除元素

list.insert(i,x)       指定在某個索引號插入一個元素x

 

list.count(x)       計算x 元素在列表中出現的次數

list.index(x)        返回x 元素在列表中出現的索引號,如果列表中有多個x, 返回第一個

list.copy()    復制這個列表,會產生新的對象

>>> a=ls.copy()
>>> a
[2, 'a', 3, 7, 3]
>>> id(a)
54370632
>>> a.ppend('s')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a.ppend('s')
AttributeError: 'list' object has no attribute 'ppend'
>>> a.append('s')
>>> a
[2, 'a', 3, 7, 3, 's']
>>> ls
[2, 'a', 3, 7, 3]
>>> 
View Code

 

list.sort(key=None,reverse=False)          對列表進行排序  如果列表中有多個數據類型,直接調用sort() 會報錯

list.reverse()     反轉列表

2.操作

  • 切片
  • 索引
  • 取長度len()

3.將列表當做stack 使用

>>> stack=[4,5,6]
>>> stack.append('a')
>>> stack.append('b')
>>> stack
[4, 5, 6, 'a', 'b']
>>> stack.pop()
'b'
>>> stack.pop()
'a'
>>> 

 

4.將列表當做隊列queue使用

>>> queue=[4,5,6]
>>> queue.append(7)
>>> queue.append('u')
>>> queue
[4, 5, 6, 7, 'u']
>>> queue.pop(0)
4
>>> queue.pop(0)
5
>>> queue
[6, 7, 'u']
>>> 

 

列表解析式list comprehension

>>> ls=[i for i in range(6)]
>>> ls
[0, 1, 2, 3, 4, 5]

 

del statement

del 語句可用來刪除列表中某個元素,與pop() 返回一個value 不同,pop 可用來刪除slice  ,

del 也可以用來刪除整個變量,當你再次引用這個名字,會引發 NameError

for example

>>> ls=[3.5,'df',478,'dfd']
>>> del ls[0]
>>> ls
['df', 478, 'dfd']
>>> del ls[0:2]
>>> del
SyntaxError: invalid syntax
>>> ls
['dfd']
>>> del ls
>>> ls
Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    ls
NameError: name 'ls' is not defined
>>> 

 

 


 

二、tuple and sequence 

  字符串,列表,都是序列數據類型,元組也是,都可以進行切片,索引

  元組是不可變的對象

  當定義一個元組,只有一個元素,要使用逗號commas,定義空元組時要用()

>>> t=1,2,3
>>> type(t)
<class 'tuple'>
>>> t[0]
1
>>> t[0]='asd'
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    t[0]='asd'
TypeError: 'tuple' object does not support item assignment
>>> #but they can contain mutable object
>>> v=([1,2,3],[4,53])
>>> v[0].append('a')
>>> v
([1, 2, 3, 'a'], [4, 53])
>>> 
View Code
>>> t
(1, 2, 3)
>>> x,y,z=t
>>> x
1
>>> y
2
>>> z
3
>>> v2=(3,)
>>> v2=()
>>> type(v2)
<class 'tuple'>
>>> 

 


 三、集合set

 A set is an unordered collection with no duplicate elements.

set 是一種無序的集合,集合里的元素不能重復

集合的特點:

  1. 互異性
  2. 無序性  :沒有索引
  3. 確定性

在python 中,列表,字典不可放入到集合中

創建集合:創建空集合不能用{} ,要用set()   ,{}會創建一個空字典

#創建集合
set1=set() #創建空集合
set1={'a','b','c',(1,2)}   

定義不可變集合:

f_set_test=frozenset(set_test)

>>> f_set_test

frozenset({'l', 'e', 'h', 'o'})

集合關系運算

set2={1,2,3,4,5,6,7,8}
set3={3,4,5,6,7,8,9,10} set2 & set3 print(set2 & set3) print(set2 | set3) print(set2 - set3)

in  

not in 

^ 對稱差集

集合方法

向集合添加元素:

View Code

從集合刪除元素:

View Code

remove方法如果刪除的元素在集合里沒有會報錯,而discard 不會,返回None。pop()方法,括號里不能有參數,但是是隨機刪除里面的值。

difference   求差集

union   求並集

intersection求交集

isdisjoint  判斷有無共同集合  ,返回布爾值

issubset   判斷是不是它的子集  返回布爾值

issuperset判斷是不是包含它    返回布爾值

View Code

清除集合

clear 方法

set1.clear()

 


 

四、dict 字典(無序)

字典是按鍵-值的關系,一個鍵對應一個值,鍵必須是不可變的數據類型。

 

初始化定義字典:

dic={}

 常用操作

  • 增加一個key-value      D[key]=value
  • 判斷一個key在不在這個字典里       in 關鍵字
  • 根據key取值    dic[key]
  • 更新字典  update  D.update(D2)
  • 刪除字典的key   pop(key)
  • 遍歷字典    for loop
  • 得到所有value   D.values()
  • 得到所有key  D.keys()
  • 得到所有key-value  D.items()
>>> d={1:'a',2:'b',3:'c'}
>>> d.items()
dict_items([(1, 'a'), (2, 'b'), (3, 'c')])
>>> a=d.items()
>>> type(a)
<class 'dict_items'>
>>> list(a)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> b=list(a)
>>> b
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> type(b[0])
<class 'tuple'>
>>> d.keys()
dict_keys([1, 2, 3])
>>> c=list(d.keys())
>>> c
[1, 2, 3]
>>> for i in c:
    print(i)

    
1
2
3
>>> d.values()
dict_values(['a', 'b', 'c'])
>>> for key,value in d.items()
SyntaxError: invalid syntax
>>> for key,value in d.items():
    print(key,value)
View Code

把數據放入dict的方法,除了初始化時指定外,還可以通過key放入:

如果key不存在,就會報錯

可以用in 來判斷,或者get方法

get方法

如果不存在會返回NOne,注意:返回None的時候Python的交互式命令行不顯示結果。不能通過get來改變字典的value,這個方法只能是獲得值

要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除

和list比較,dict有以下幾個特點:

  1. 查找和插入的速度極快,不會隨着key的增加而變慢;
  2. 需要占用大量的內存,內存浪費多。

而list相反:

  1. 查找和插入的時間隨着元素的增加而增加;
  2. 占用空間小,浪費內存很少。

所以,dict是用空間來換取時間的一種方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM