python常用對象使用方法


1 Python Number(數字)

Python Number 數字類型用於存儲數值。

數字類型是不允許改變的,這就意味着如果改變 Number 數據類型的值,將重新分配內存空間。

以下實例在變量賦值時 Number 對象將被創建:

#以下實例在變量賦值時 Number 對象將被創建:
var1 = 1
var2 = 10

#使用del語句刪除一些 Number 對象引用
del var
del var_a, var_b

 

>>> id(8)
8675840L
>>> x = 8
>>> y = 8
>>> x is y True >>> id(y)
8675840L
>>> id(555) 53060472L >>> x1 = 555 >>> id(x1) 53058888L >>> y1 = 555 >>> id(y) 8675840L

 

2 Python 字符串

字符串是 Python 中最常用的數據類型。我們可以使用引號('或")來創建字符串。

創建字符串很簡單,只要為變量分配一個值即可。例如:

#創建字符串
var1 = 'Hello World!'
var2 = "Python Runoob"

Python訪問字符串中的值

Python不支持單字符類型,單字符在 Python 中也是作為一個字符串使用。

Python訪問子字符串,可以使用方括號來截取字符串,如下實例:

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Runoob"

print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]

Python字符串更新(實際上是生成一個新的字符串對象,字符串是不可變對象)

你可以對已存在的字符串進行修改,將生成一個新的字符串,如下實例:

>>> str1 = "hello"
>>> id(str1)
55521928L
>>> str1 = str1 + 'world'
>>> str1
'helloworld'
>>> id(str1)
55700432L

 

3 Python 列表(List)

序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引(指向實際的對象),第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最常見的是列表和元組。

序列都可以進行的操作包括:索引,切片,加,乘,檢查成員

此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。

列表是最常用的Python數據類型,它可以作為一個方括號內的逗號分隔值出現。

列表的數據項不需要具有相同的類型,Python List底層存儲結構並不是循環雙向鏈表,而是類似於vector;

創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

與字符串的索引一樣,列表索引從0開始。列表可以進行截取、組合等。

訪問列表中的值

 使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式截取字符,如下所示:

#!/usr/bin/python
 
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
 
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

#x[startAt:endBefore:filterstep]
>>> x = range(10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[::2]
[0, 2, 4, 6, 8]
>>> x[::3]
[0, 3, 6, 9]

#filter step: 2, range [2:7)
>>> x[2:7:2]
[2, 4, 6]
>>> id(x)
55248712L
>>> id(x[0:2])
55292936L
>>> x[0:2]
[0, 1]

更新列表(Python List 為可變對象,in-place change)

你可以對列表的數據項進行修改或更新,你也可以使用append()方法來添加列表項,如下所示:

>>> list1 = []
>>> id(list1)
55301384L
>>> list1.append("hello")
>>> list1
['hello']
>>> id(list1)
55301384L

刪除列表元素

可以使用 del 語句來刪除列表的元素,如下實例:

list1 = ['physics', 'chemistry', 1997, 2000]
 
print list1
del list1[2]

 

4  Python tuple (元組)

Python的元組與列表類似,不同之處在於元組的元素不能修改。

元組使用小括號,列表使用方括號。

元組創建很簡單,只需要在括號中添加元素,並使用逗號隔開即可。

如下實例:

 

#元組元素用括號包含,類型可不一樣
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
#元組元素用逗號分隔即可
tup3 = "a", "b", "c", "d";

#創建空元組
tup1 = ();

#創建只有一個元素的元組,需要在元素后面添加逗號,否則變成一個整數
>>> tup1 = (2,)
>>> tup1
(2,)
>>> type(tup1)
<type 'tuple'>

>>> (1)
1
>>> type((1))
<type 'int'>

訪問元組(序列元素的訪問方式:索引,切片等)

元組可以使用下標索引來訪問元組中的值,如下實例:

#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5]

修改元組

元組中的元素值是不允許修改的,但我們可以對元組進行連接組合(實際生成新的對象),如下實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# 以下修改元組元素操作是非法的
# tup1[0] = 100;

# 創建一個新的元組
tup3 = tup1 + tup2;
print tup3;

刪除元組

 元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組,如下實例:

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);

del tup;

 

5 Python 字典(Dictionary)

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

鍵必須是唯一的,但值則不必。

值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

一個簡單的字典實例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

訪問字典里的值

把相應的鍵放入熟悉的方括弧,如下實例:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];

修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:

#!/usr/bin/python
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操作。

顯示刪除一個字典用del命令,如下實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
 
del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear();     # 清空詞典所有條目
del dict ;        # 刪除詞典

字典鍵的特性

字典值可以沒有限制地取任何python對象,既可以是標准的對象,也可以是用戶定義的,但鍵不行。

兩個重要的點需要記住:

1)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,后一個值會被記住,

2)鍵必須不可變,所以可以用數字,字符串或元組充當,所以用列表就不行,

3)字典內部采用HashTable(散列表)的實現方式

 

6 set(可變集合)

 set和dict類似,也是一組key的集合,但不存儲value。由於key不能重復,所以,在set中,沒有重復的key。

 要創建一個set,需要提供一個序列對象(eg. list, string)作為輸入集合:

>>> s = set("123") 
>>> s
set(['1', '3', '2'])
>>> s = set([1,2,3])
>>> s
set([1, 2, 3])

重復元素在set中自動被過濾:

>>> s = set("122224")
>>> s
set(['1', '2', '4'])

通過add(key)方法可以添加元素到set中,可以重復添加,但不會有效果:

>>> s
set(['1', '2', '4'])
>>> s.add("2")
>>> s
set(['1', '2', '4'])
>>> s.add("25")
>>> s
set(['1', '25', '2', '4'])

通過remove(key)方法可以刪除元素:

>>> s
set(['1', '25', '2', '4'])
>>> s.remove("2")
>>> s
set(['1', '25', '4'])

tips:

(1) set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作.

(2) set和dict的唯一區別僅在於沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因為無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重復元素”。試試把list放入set,看看是否會報錯。

 

>>> s.add([1,2])

Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    s.add([1,2])
TypeError: unhashable type: 'list'

  

7 frozenset (不可變集合)

frozenset是不可變的集合, 簡單說就是不能修改的set集合, 它和set集合類似,區別在於一個可變, 另一個不可變,其它的功能一樣。 很像list和tuple的區別。

# 創建一個空的frozenset集合
>>> frozen_set = frozenset()                                       
>>> frozen_set
frozenset([])

# 從一個list創建一個frozenset集合
>>> frozen_set2 = frozenset(['a','b','c','d','e'])                 
>>> frozen_set2
frozenset(['a', 'c', 'b', 'e', 'd'])

#無法添加元素,沒有add等添加方法

 

參考:

Python 基礎教程

Python基礎--廖雪峰

不可變集合frozenset

 


免責聲明!

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



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