python的數據類型及操作
簡述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的數據類型及操作