1. 程式人生 > >python的數據類型及操作

python的數據類型及操作

part isa 操作 mat 對象 空白 partition 永久 deepcopy

簡述python的幾種簡單的數據類型及使用方式

字符串

字符串是不可變數據類型,擁有多種內置方法可以操作。

創建字符串就是給變量分配一個字符串的值即可。通常用引號創建字符串。

tell = my name is Jeff
tell1 = "my name is Jeff"
tell2 = ‘‘‘my name is Jeff,
I‘m oldboy .‘‘‘

字符串切片

tell = my name is Jeff
print(tell[0])
print(tell[:7])
print(tell[:7]+\tfrank)
運行結果
m
my name
my name    frank

使用split方法

tell = "my name is jeff "
print(tell.split(a))
運行結果
[my n, me is jeff ]

字符串格式化輸出

print(my name is %s%(jeff))
運行結果
my name is jeff
print(my name is {name}.format(name=jeff))
運行結果
my name is jeff

字符串的內置方法

1.capitalize(整個字符串首字母大寫,其他全部改為小寫)

2.upper(整個字符串全部大寫)lower(全部小寫)

3.center(指定寬度和填充字符)

tell = "my name Is jeff "
print(tell.center(50,*))
運行結果
*****************my name Is jeff *****************

4.count(區間內某個字符的個數)

tell = "my name Is jeff "
print(tell.count(m,0,5))
運行結果
1

5.encode(編碼方式)

6.endswith(以某字符,字符串結尾)

tell = "my name Is jeff"
print(tell.endswith("
ff")) 運行結果 Ture

7.expandtabs(選擇制表符的寬度)

8.find(索引字符的位置,沒有返回值為-1)index(同find,但是他查不到會報錯)rfind(從右向左查同find)rindex(從右向左返回索引值同index)

9.format(格式化輸出)format_map(格式化輸出,以字典形式存儲kv數據)

people={
    name:[Frank,Caroline,jeff],
    age:[23,22],
}
print("My name is {name[2]},i am {age[0]} years old !".format_map(people))
運行結果
My name is jeff,i am 23 years old !

10.isalnum(是否是數字與字母的組合)isalpha(是否是字母組合)isdecimal(是否是十進制正整數)isdigit(是否是真整數)isdentifier(是否是python中的標識符)islower(判斷字符串字母是不是都是小寫)isnumeric(是不是數字,無論中文還是其他只要是數字就能判斷)isprintable(是否可打印)isspace(是否都是空格,tab/r等)istitle(是否所有字符首字母大寫)返回值都是bool值

11.join(以指定字符連接生成新的字符串)

tell = "my name Is jeff"
print(=.join(tell))
運行結果
m=y= =n=a=m=e= =I=s= =j=e=f=f

12.ljust與rjust指定字符寬度填充,與center類似

tell = "my name Is jeff"
print(tell.ljust(20,=))
print(tell.rjust(20,=))
運行結果
my name Is jeff=====
=====my name Is jeff

13.lstrip,rstrip,strip去前後空白\r\n等

14.maketrans,translate

intab = "abcde"
outtab = "12345"
tell = "my name Is jeff"
trantab = tell .maketrans(intab, outtab)
print (tell.translate(trantab))
運行結果
my n1m5 Is j5ff

15.partition(指定分隔字符,返回一個元組裏)rpartition(從右向左分割,只分割一次,若沒有指定字符返回元祖前面加兩個空字符串)split(指定字符分割,可指定分割次數分割後刪除指定的字符默認空格分割)rsplit(同split只是從右向左)

16.replace(指定字符替換為新的字符,可指定個數)

17.splitlines(將字符串轉換為列表)

18.startswith(是否是字符串或字符開頭)

19.swapcase(大小寫互換)

20.zfill(與center類似,顯示在右邊不足寬度補零)

整型與長整型

整型是不包含小數部分的數值,格式是“int”。長整型與整型類似只是數字比較大,格式是“type”。且長整型只存在於python2中,32位機器上取值範圍是-2**31~2**31-1,在64位機器上取值為-2**63~2**63-1。在python3中沒有整型與長整型的區分,只有整型。

浮點型

我們可以簡單的把浮點型看做是小數。格式類型是“type”。浮點型除了作為小數輸出還常用於科學計數法中。

a=1.23e10
b=1.23E10
print(a)
print(b)
print(type(a))
print(type(b))
輸出結果
12300000000.0
12300000000.0
<class float>
<class float>

bool型

bool類型的返回值只有兩種:True和False。

邏輯運算:

1.與運算:and(兩個都為True,結果才為True)

2.或:or(只要一個為True,則為True)

3.非:not(把True變為False,把False變為True)

短路運算:

布爾類型還可以與其他數據類型進行邏輯運算,python中0、空字符串、None、空列表、空字典等為False,其他數值和非空字符串為True。

1.在計算a and b時,如果a是True,則計算結果取決於b,則返回b;如果a是False,則直接返回a。

2.在計算a or b時,如果a是True,則直接返回a;否則返回b。

bool類型還可以當做整型的0和1使用。

print(True+13)    #True為1
print(False+13)   #False為0
輸出結果
14
13

列表

列表是由一系列按特定順序排列的元素組成。在python中,用方括號表示列表,並用逗號來分割其中的元素,格式類型為“list”。

列表的內置方法有:

1.append(在列表的最後添加某個元素)insert(也是添加元素,但是可以通國索引指定插入具體位置)

2.count(某個元素的個數)

3.clear(清空列表)

4.copy(復制列表)

name = [jeff,Frank,1,{xixi:sabi},[3,4]]
name_cp = name.copy()
print(name_cp)
name[0]=Tom
name[2]= 7
print(name)
print(name_cp)
運行結果
[jeff, Frank, 1, {xixi: sabi}, [3, 4]]
[Tom, Frank, 7, {xixi: sabi}, [3, 4]]
[jeff, Frank, 1, {xixi: sabi}, [3, 4]]

註:改變列表name中的元素name.copy中的值也隨著變化。但是改變列表name中的列表值,name.copy的列表值是不會變得。由於列表中的列表開辟的空間是不變的(列表本身是可變數據類型)name與name.copy指向的是同一個地址,裏面存儲的值會一起改變。

5.deepcopy與copy類似,但是無論copy原列表如何變化,deepcopy的列表都會與列表一起變化,即兩者指向統一的數據空間。

6.extend(函數用於在列表末尾一次性追加另一個序列中的多個值,用新列表擴展原來的列表。)

name = [Saber,Frank]
nameto = [Mei,Jack]
name.extend(nameto)
print(name)
運行結果
[Saber, Frank, Mei, Jack]

7.index(查找相應元素的索引值,可指定索引範圍並且查不到也不會報錯)

8.pop(彈出元素,不指定默認彈出最後一個值,索引失敗會報錯,彈出的值可以存儲到其他列表或變量裏。)remove(也是移除,可指定移除的具體元素)del(無敵的移除手段)

9.reverse(將列表中元素反轉過來)

10.sort(將列表排序,永久修改可通過reverse=True傳遞倒著排序)sorted(與sort類似但是不改變原列表的元素)

11.len(查看列表的長度)

元組

與列表很相似,只是不可以進行修改。若是要改變元組中的值只能夠改掉整個元組咯。

集合

集合是無需元素組成,打印時順序也是無序的,但是集合中沒有重復的元素,所以我們常使用集合去重。

我們有兩個集合a與b:

a與b的交集為a.intersection(b)或者a & b。

a與b的差集為a.difference(b)或者a-b。

a與b的並集為a.union(b)或者a|b。

反向差集與對稱差集(並集減去交集)為a.symmetric_difference(b)或者a^b。

合並為a.update(b),a.difference_update(b)求差集並賦值給a集合

刪除元素可用discard(元素)或者remove(元素),pop()是隨機刪除一個元素。

註:set是可變數據類型,但是set裏面的元素一定是不可變數據類型。

字典

在python裏面,字典就是一系列的鍵-值對,每個鍵都與一個值是對應的,鍵可以是數字、字符串、列表和字典。任何python對象都可用作字典的值。

字典中常用的內置方法有:

keys(取出字典中的key)

values(取出字典中的value)

clear(清空所有鍵值對)

copy(與列表一致)

fromkeys(創建新的列表所有的值都是同一個value)

key = (1,2,3,4,5)
value = (a,b,c,d,e)
print(dict.fromkeys(key,value))
運行結果
{1: (a, b, c, d, e), 2: (a, b, c, d, e), 3: (a, b, c, d, e), 4: (a, b, c, d, e), 5: (a, b, c, d, e)}

get(查找的一種方式,找不到對象返回None)

item(返回鍵值對)

pop(指定key,彈出此鍵值對)

popitem(彈出最後一個鍵值對返回到元組中,沒有會報錯)

update(將新的字典添加到原來的字典,若原來的字典包含了這個鍵則覆蓋原來的值)

setdefault(k,v)如果鍵在字典中,則返回這個鍵的值,如果不在字典中,則向字典中插入這個鍵,並返回value,默認value位None。

bytes

所有的字符存到存儲單元裏都是bytes類型。

這裏簡述了集中python中常用數據類型以及內置的一些使用方法,方便以後對python的學習在此總結一下。

python的數據類型及操作