Python 資料類型

來源:互聯網
上載者:User

標籤:換行   logs   科學計數法   cti   預設   append   開始   取字串   迭代器   

一、資料類型簡介

(1) Python 資料類型包括數實值型別、字串類型、元組、列表、字典
(2) 數實值型別可以分為整型、長整型、浮點型、複數型
(3) 字串、元組、列表都屬於序列的一種,三種類型都可以使用序列的一些特性(比如索引與切片,以及下面列舉的一些基本操作)

len()     # 求序列的長度+         # 串連兩個序列*         # 重複序列元素in        # 判斷元素是否在序列中
not in # 判斷元素是否不在序列中max() # 返回最大值min() # 返回最小值cmp(x,y) # 比較兩個序列是否相等

二、數實值型別

1. 整型

In [1]: a = 123              # 定義整數類型In [2]: type(a)              # 查看資料類型Out[2]: int

-2147483648 —— 2147483647 # 整型的取值範圍,如果超過了這個範圍則成為長整型

2. 長整型

In [7]: a = 123456789123456789123456789    # 定義長整型In [8]: type(a)                            # 查看資料類型Out[8]: longIn [9]: a                                  # 長整型後面會帶有字母(l或L)以標識這是長整型Out[9]: 123456789123456789123456789L

3. 浮點型

In [10]: a = 1.0    # 帶小數點的資料類型則為浮點型
In [11]: b = 3e+7 # 科學計數法也屬於浮點型
In [11]: type(a) # 查看資料類型Out[11]: float

4. 複數型

In [14]: a = 123j    # 字母 j 用於標識這是一個複數類型In [15]: type(a)     # 查看資料類型Out[15]: complex

三、字串類型

1. 定義字串

In [16]: str = ‘this is a string‘        # 可以使用單引號/雙引號/三引號來定義字串類型In [17]: str = "this is a string"        # 在 python 中,單引號和雙引號並沒有什麼區別In [18]: str = ‘‘‘this is a string‘‘‘    # 三引號可以寫成‘‘‘或""" ,三引號除了能定義字串類型外還能用來做注釋
In [21]: str = "Hello\nWorld"    # 單引號和雙引號如果要跨行定義需要加上 \n 作為分行符號In [24]: str = """Hello          # 三引號可以直接斷行符號在下一行輸入   ....: World"""

2. 字串的索引與切片

In [26]: a = ‘abcde‘In [27]: a[0]      # 索引值從0開始,表示取字串中的第一個字元Out[27]: ‘a‘In [28]: a[1]      # 取字串中的第二個字元Out[28]: ‘b‘In [29]: a[-1]     # -1 表示倒數一個字元,-2 表示倒數第二個字元,以此類推Out[29]: ‘e‘In [30]: a[0:2]    # 表示取第一個到第三個(不包括第三個)這個範圍的字元Out[30]: ‘ab‘In [31]: a[:2]     # 零可以省略,如果省略表示從第一個索引開始取Out[31]: ‘ab‘In [32]: a[1:]     # 這樣寫表示從第二個取到最後一個索引Out[32]: ‘bcde‘In [33]: a[-4:-2]  # 表示取倒數第四個到倒數第二個(不包括倒數第二個)這個範圍的字元Out[33]: ‘bc‘In [34]: a[::1]    # 表示每隔一個數取一次(如果是負數則從右向左取)Out[34]: ‘abcde‘In [35]: a[::2]    # 表示每隔兩個數取一次Out[35]: ‘ace‘

3. 字串的方法

In [1]: a = ‘abc‘In [2]: a.lower()    # lower()用於將字串轉換成小寫字母Out[2]: ‘abc‘In [3]: a.upper()    # upper()用於將字串轉換成大寫字母Out[3]: ‘ABC‘
In [4]: a.startswith(‘ab‘) # startswith()用於判斷是否以指定的字元開頭,如果是則返回 True ,否則返回 FalseOut[4]: True
In [6]: a.isdigit() # isdigit()用於判斷是否是純數位字串
Out[6]: False

In [7]: a.capitalize() # capitalize()用於使字串首字母變成大寫
Out[7]: ‘Abc‘

In [8]: a.replace(‘a‘, ‘A‘) # replace()用於替換字串,預設只替換一次,如果要替換多次可以在後面指定次數,如 a.replace(‘a‘, ‘A‘, 3)
Out[8]: ‘Abc‘

In [9]: a.split(‘b‘) # split()用於切分字串,括弧裡可以指定分割符,如果不指定預設以空格/Tab鍵/分行符號來切分
Out[9]: [‘a‘, ‘c‘]

In [9]: a.find(‘b‘) # find()用於返回指定字元的索引值,如果沒有找到該字元則返回-1
Out[9]: 1

In [9]: ‘-‘.join(a) # join()用於將序列中的元素以指定的字元串連產生一個新的字串,詳細用法參考菜鳥教程
Out[9]: a-b-c
In [69]: a = ‘ abc ‘In [70]: a.strip()            # strip()用於把左右兩邊的空格去掉Out[70]: ‘abc‘In [71]: a.lstrip()           # lstrip()用於把最左邊(left)的空格去掉Out[71]: ‘abc ‘In [72]: a.rstrip()           # rstrip()用於把最右邊(right)的空格去掉Out[72]: ‘ abc‘
In [73]: name = ‘xiaoming‘    # format()用法與print的格式化輸出字串用法一致In [74]: age = 21In [75]: print(‘my name is {0}, my age is {1}‘).format(name, age)my name is xiaoming, my age is 21

4. string 模組

In [1]: import stringIn [2]: string.lowercase                     # string.lowercase 用於列印所有小寫字母Out[2]: ‘abcdefghijklmnopqrstuvwxyz‘In [3]: string.uppercase                     # string.uppercase 用於列印所有大寫字母Out[3]: ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘In [4]: string.capitalize(‘hello‘)           # string.capitalize()用於指定字串的首字母大寫Out[4]: ‘Hello‘In [5]: string.replace(‘hello‘, ‘h‘, ‘H‘)    # string.replace()用於替換字串Out[5]: ‘Hello‘

四、列表

1. 列表的基本操作

In [65]: a = [‘abc‘, 123, 456]    # 建立列表In [66]: a[0] = ‘def‘             # 修改列表元素In [67]: type(a)                  # 查看資料類型In [68]: del a                    # 刪除列表
In [69]: del a[0] # 刪除列表的某個元素

2. 列表的方法

In [74]: a = [‘a‘, ‘b‘, ‘c‘]In [75]: a.append(‘d‘)        # append()用於追加指定的列表元素

In [76]: a.remove(‘d‘) # remove()用於刪除指定的列表元素,如果有多個相同的列表元素,則預設只刪除一個

In [77]: a.insert(2,‘c‘) # insert()用於在指定的索引前面插入元素,這裡表示在索引為 2(即‘c‘)的前面插入字元‘c‘ ,結果為 [‘a‘, ‘b‘, ‘c‘, ‘c‘]

In [77]: a.index(‘b‘) # index()用於返回指定元素的索引值

In [78]: a.sort() # sort()用於給列表排序(正向排序)

In [79]: a.reverse() # reverse()用於反轉列表元素,比如 a = [‘a‘, ‘b‘, ‘c‘] ,則 a.reverse() 結果為 [‘c‘, ‘b‘, ‘a‘]

In [80]: a.pop(2) # pop()用於返回並刪除指定索引位置的元素,如果不指定索引值則預設返回並刪除最後一個

In [81]: a.extend(range(5)) # extend()用於將可迭代的對象追加到列表中,括弧內的 range(5) 是可迭代的對象,一般用來把一個列表的內容追加到另一個列表中五、元組

五、元組

1. 元組簡介

(1) 元組用括弧來定義,可以儲存一系列的值
(2) 元組與字串一樣是不可變的,也就是說,當你定義完一個元組之後,你不能改變某個元素的值,除非你把整個元組重新定義
(3) 元組通常用在使用者定義的函數能夠安全地採用一組值的時候,即被使用的元組的值不會改變

In [50]: t = (‘abc‘, 123, 456)    # 定義元組
In [50]: t = (‘abc‘,) # 當元組中只有一個元素的時候後面要加逗號,否則 python 會認為這是一個字串類型而不是元群組類型
In [51]: type(t) # 查看資料類型Out[51]: tuple

2. 元組的方法

In [56]: t = (‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘a‘)In [57]: t.count(‘a‘)    # count()用於統計元素的個數Out[57]: 3In [59]: t.index(‘b‘)    # index()用於返回元素對應的索引值Out[59]: 1

六、字典

1. 字典簡介

(1) 字典是 python 中唯一的映射類型(key-value)
(2) 字典的 value 是可變的,但是字典的 key 不可變,且 key 唯一,不能有重複的 key 值

In [1]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}    # 定義字典 In [2]: type(a)    # 查看資料類型Out[2]: dict

In [3]: a[2] # 根據 key 訪問字典元素
Out[3]: ‘b‘

2. 字典的方法

In [4]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}In [5]: a.keys()            # keys()用於返回字典中所有的 keyOut[5]: [1, 2, 3]In [6]: a.values()          # values()用於返回字典中所有的 valueOut[6]: [‘a‘, ‘b‘, ‘c‘]In [7]: a.get(2)            # get()用於返回指定 key 的 value 值,這裡表示返回 key 為 2 的 value 值Out[7]: ‘b‘
In [8]: a.has_key(1) # has_key()用於判斷字典中是否有指定的 key 值Out[8]: TrueIn [9]: a.items() # items()用於以元組的形式返回字典中的 key-value 對,且外層是一個列表,該方法可以用迴圈來遍曆字典Out[9]: [(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
In [10]: a.iteritems() # iteritems()用於與 items() 一致,但返回的是一個迭代器,不佔用記憶體,只有在需要的時候才調用,就像 print 和 return 的關係一樣
Out[10]: <dictionary-itemiterator at 0x297ac58>
In [11]: a.copy() # copy()相當於複製字典,一般將它賦值給某個變數,比如 b = a.copy()Out[11]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘}In [12]: a.pop(2) # pop()用於返回並刪除指定 key 所對應的元素Out[12]: ‘b‘

In [13]: a.update(b) # update()用於合并兩個字典,比如 a = {1:‘a‘} ,b = {2:‘b‘} ,則 a.update(b) 結果為 {1:‘a‘, 2:‘b‘}
In [14]: a.clear() # clear()用於清除字典中的所有元素
In [37]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}    In [38]: a.setdefault(2)          # setdefault()作用與 get() 一致,用於返回指定 key 的 value 值,當然前提是 key 存在的情況下Out[38]: ‘b‘In [46]: a.setdefault(4, ‘d‘)     # 當指定的 key 不存在時,返回我們設定的預設值並把 key-value 追加到字典中Out[46]: ‘d‘In [47]: aOut[47]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘}

 

 

 

 

   

     

Python 資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.