標籤:差集 隨機 修改 epc 迭代 反向 統計 記憶體 rev
一、字串s = ‘python‘s1 = ‘python‘ + ‘learn‘#相加其實就是簡單拼接s2 = ‘python‘ * 5#相乘其實就是複製自己多少次,再拼接在一起字串切片:a= ‘abcdefg‘print(a[0])# 索引即下標,就是字串組成的元素從第一個開始,初始索引為0以此類推。print(a[0:]) #預設到最後print(a[0:-1]) #-1就是最後一個print(a[0:5:2])#加步長print(a[5:0:-2])#反向加步長print(s.capitalize()) #首字母大寫print(s.swapcase())#大小寫翻轉print(s.title()) #每個單詞的首字母大寫print(‘learn‘.center(20,‘*‘))#置中,總長度,空白處填充print(‘learnnnn‘.count(‘n‘,0,6))#計算字串中某元素出現的個數,可切片。print(‘pyt\t12345ho\tn‘.expandtabs())#補全 (tab -> 8個字元)# pyt 12345ho nprint(‘python‘.find("pyt",1,6))#返回的找到的元素的索引,如果找不到返回-1print(‘python‘.index("pyt",1,6)) #返回的找到的元素的索引,找不到報錯。#str <---轉---> listprint(‘‘.join({‘1‘,‘2‘,‘3‘}))#""中是什麼,就以什麼作為拼接符,將參數中所有的str元素合并為一個新的字串print(‘py t,hon‘.split())#以什麼分割,最終形成一個列表此列表不含有這個分割的元素。預設空格。print(‘py t.h.on‘.rsplit(‘.‘,1))#從右往左,取一個分割符#[‘py t.h‘, ‘on‘]print(‘ python* ‘.strip())#預設去掉兩端的空格。#python*print(‘* *python*‘.rstrip(‘*‘))#去掉字串右邊的空格‘*‘#* *pythonprint(‘* *python*‘.lstrip(‘*‘))#去掉字串左邊的空格‘*‘# *python*print(‘abcbc‘.replace(‘bc‘,‘SB‘,1))#替換,且替換一處#aSBbc#.format的三種格式化輸出res1=‘{} {} {}‘.format(‘a‘,18,‘male‘)res2=‘{1} {0} {1}‘.format(‘a‘,18,‘male‘)res3=‘{name} {age} {sex}‘.format(sex=‘male‘,name=‘a‘,age=18)print(res1,‘\n‘,res2,‘\n‘,res3)print(‘abc123‘.isalnum())#字串由字母或數字組成print(‘abc123‘.isalpha())#字串只由字母組成print(‘abc123‘.isdigit())#字串只由數字組成二、元組tuple元組被稱為唯讀列表,即資料可以被查詢,但不能被修改,所以,字串的切片操作同樣適用於元組。例:tup1=(1,2,3) tup2=("a","b","c")tup3=(1,2,[],{})#tup3中的[],{}可修改,因為tuple存的是list和dict的記憶體位址,用id()查註:如果元組裡面只有一個元素切不加“,”,那麼元素是什麼類型,就是什麼類型。三、列表list:li = [1,‘a‘,‘b‘,2,3,‘a‘]# li.insert(0,55) #按照索引去增加# li.append(‘aaa‘) #增加到最後# li.append([1,2,3]) #增加到最後# li.extend([1,2,3])#迭代添加# l1 = li.pop(1) #按照位置去刪除,有傳回值# del li[1:3] #按照位置去刪除,也可切片,刪除沒有傳回值。# li.remove(‘a‘)#按照元素去刪除# li.clear()#清空列表# li[1] = ‘dfasdfas‘#改,對某個元素直接賦值# li[1:3] = [‘a‘,‘b‘]#對切片範圍賦可迭代對象,將迭代值插入到列表(在選定範圍處,有多少插多少,原索引往後移,被選範圍將不複存在)# 查 #切片查,或者迴圈查# print(li.count("a"))#統計某個元素在列表中出現的次數# print(li.index("a"))#從列表中找出某個值第一個匹配項的索引位置,沒有會報錯# li.sort()#方法用於在原位置對列表進行排序。str與int並存會報錯# li.reverse()#方法將列表中的元素反向存放。深淺copy:L1 = [1,2,3]L2 = L1# id(L1)=id(L2)#指向同一個記憶體位址,修改L1,L2 也會變L3 = L1[:]# id(L1)!=id(L3) #切片賦值給L3,新開闢記憶體,互不干擾L = [‘a‘]L1 = [1,2,L]#L1的第三個元素是L的記憶體位址L4 = L1[:]#切片只是複製一層元素給L4,複製L的地址給L4,不複製L指向的值L1[-1].append(‘b‘) #L1[2]與L4[2]都指向L,所以L1[2] == L4[2]import copyL5 = copy.deepcopy(L1)#對於深copy來說,兩個是完全獨立的,改變任意一個的任何元素(無論多少層),另一個絕對不改變。四、字典dict:#鍵唯一,可雜湊。# dic = {"name":"A","age":18,"sex":"male"}# dic1 = {"name":"B","weight":100}# dic1.setdefault(‘weight‘) # 有索引值對,不做任何改變,沒有才添加。# dic1.setdefault(‘weight‘,100) # value1 = dic["name"]# 沒有會報錯# value2 = dic.get("djffdsafg","預設傳回值")# 若沒有可以返回設定的傳回值# dic[‘k‘]=‘v‘# 添加# print(dic1.pop(‘age‘))# 有傳回值,按鍵刪除# dic2.update(dic)# 將dic所有的索引值對覆蓋添加(相同的覆蓋,沒有的添加)到dic2中# item = dic.items()# keys = dic.keys()# values = dic.values()# dic_clear = dic.clear() # 清空字典#字典的迴圈# for key in dic:#key為鍵# for item in dic.items():#item = (‘name‘, ‘A‘)# for key,value in dic.items():#key,value = ‘name‘, ‘A‘五、enumerate#枚舉,對於一個可迭代的(iterable)/可遍曆的對象(如列表、字串),#enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。>>>s = enumerate([1,2,3,4,5,6])>>>s.__next__()>>>(0, 1)# for i in enumerate(li):# for index,name in enumerate(li,2):# 起始位置預設是0,可更改六、range#指定範圍,產生指定數字。#1.預設是從小到大 #2.範圍是從小到大,步長需為正 #3.範圍是從大小大,步長需為負#不滿足這三點只是空列表[]# for i in range(1,10):# for i in range(1,10,2):# 步長# 範圍是從小到大,步長需為正# for i in range(10,1,-2):# 反向步長# 範圍是從大小大,步長需為負五、集合set:集合是無序的,不重複的資料集合,它裡面的元素是可雜湊的(不可變類型),但是集合本身是不可雜湊(所以集合做不了字典的鍵)的。以下是集合最重要的兩點: 去重,把一個列表變成集合,就自動去重了。 關係測試,測試兩組資料間的交集、差集、並集等關係。set1 = set({1,2,‘hobby‘})set2 = {1,2,‘hobby‘}print(set1,set2) # {1, 2, ‘hobby‘} {1, 2, ‘hobby‘}set1.add(‘女神‘)set1.update([1,2,3])#update:迭代添加,不重複set1.remove(1) # 刪除一個元素set1.pop()# 隨機刪除一個元素set1.clear()# 清空集合del set1# 刪除集合set1 & set2#交集。(& 或者 intersection)set1 | set2#並集。(| 或者 union)set1 - set2#差集。(- 或者 difference)set1 ^ set2#反交集。 (^ 或者 symmetric_difference)set1 < set2或set1.issubset(set2)# set1是set2子集。bool值set2 > set1或set2.issuperset(set1)# set2是set1超集。bool值#列表去重# 1i=[1,2,33,33,2,1,4,5,6,6]# set1=set(1i)# 1i=list(set1)#frozenset不可變集合,讓集合變成不可變類型(不可添加刪除)。s = frozenset(‘www‘)print(s,type(s)) # frozenset({‘w‘})
python基礎學習 str,list,dict,set,range,enumerate