依舊是python基礎
for循環
s = 'woeudbwieb' for i in s:#s代表可迭代對象 print(i) if 'c' not in s: print('沒有c')
列表
每個元素以逗號隔開,可以放任意的數據類型,有序
切片和索引跟字符串相同
常用操作
# 增加 li = ['jiang','chengcheng'] li.append('judy') print(li) # 迭代增加 li = ['jiang','cheng'] li.extend('123')#參數為可迭代對象,分解成元素逐個添加到列表后面
# 小練習,循環增加列表 li = ['jiang','chengcheng'] while 1: new = input('input new :') if new=='q': break else:li.append(new) print(li)
# 插入 li = ['jiang','chengcheng'] li.insert(1,'12')#插入到索引值的前面 print(li)
# 刪除 li = ['jiang','chengcheng',1,2,3,4] li.pop() #按索引刪除,默認刪除最后一個,返回刪除元素 li.remove('dudu') #按元素刪除,沒有返回值 li.clear() #清空列表 del li #在內存中刪除整個列表 del li[2:]#切片刪除
# 修改 li = ['jiang','chengcheng',1,2,3,4] li[2] = 'hlb' # 切片修改 li[2:4] = 'i am beatiful girl'#任意多個字符 print(li)
# 排序(列表中元素是同一類型) list = [1,2,3,4,7,6,5,8,0,9] list.sort(reverse=True)#默認false->正向排序 list.reverse()#反轉
# 列表嵌套
list = [['jiang','cheng','cheng'],'is','a','beautiful','girl']
#循環打印嵌套列表 l = [1,2,3,5,'jcc',[1,5,3],'beauty'] for i in l: if isinstance(i,list): for j in i: print(j) else:print(i)
list在循環中刪除的狀況
#測試循環中刪除元素 list1 = [1,2,3,4,5] for i in range(len(list1)):#進入循環時range(len(list1))的數值已經固定,[0,1,2,3,4] print(i) del list1[i]#i = 3時報錯,IndexError: list assignment index out of range print(list1) for i in range(len(list1)): if i%2!=0: list1.remove(list1[i]) print(list1)#雖然沒有報錯,但是結果是錯誤的 #刪除奇數位的元素 #1.list的切片 print(list1[::2]) # 2. list2 = [] for i in range(len(list1)): if i%2==0: list2.append(list1[i]) list1 = list2 print(list2) print(list1)
元組
可循環,可切片,不可修改
可變數據類型:列表list,字典dict,集合set 不可hash
不可變數據類型:元組tuple,bool,int,str 可hash
常用操作
tuple = (1,2,3,'jiang','cheng','cheng',['is','a','beautiful','girl']) tuple[0] = '1'#報錯,不可修改 tuple[6][2] = 'handsome'#可以修改
join
s = 'jcc' lis = ['1','2','3']#list里邊只能放字符串,不能放數字,且不能嵌套 s1 = '*'.join(lis)#可以放可迭代對象,以*連接元素,形成一個新的字符串
range
for i in range(0,10,2):#打印 print(i) for i in range(10,1,-1):#倒敘打印2-10 print(i) for i in range(1,10,-1):#不會報錯,什么都不打印 print(i)
字典
key必須是不可變數據類型
優勢:key值組成hash表,二分方法查找,查詢速度快
存儲大量的關系型數據
無序
常用操作

#字典 dict dic = {'age':19,'name':'jcc'} dic1 = {'age':22} #增加 dic['high'] = 160 dic.setdefault('weight',49) #修改 dic['name'] = 'jiangcc' dic.update(dic1)#把dic1中的鍵值對更新到dic中,有就改,沒有就不改 dic.setdefault('weight',50)#不做改變,體重增加一公斤都不行 #刪除 dic.pop('age')#刪除有返回值,返回刪除的元素 dic.popitem()#隨機刪除 dic.clear()#清空字典 del dic['name']#刪除鍵值對,沒找不到會報錯 #查 dic.keys()#得到一個和列表相似的數據類型,把字典中的鍵放入 dic.values()#得到一個和列表相似的數據類型,把字典中的值放入 dic.items()#得到一個列表里邊 嵌套多個元組

# 循環鍵值對 for k,v in dic.items(): print(k,v) print(dic.get('name1'))#如果沒有查到不報錯,返回None v = dic['name1']#查不到報錯 # 字典嵌套 dic = { 'name':['jcc','hlb'], 'hobby':{ 'boy':'cool' }, 'age':18 } dic['age'] = 16 dic['name'].append('jiangchengcheng') dic['name'][0] = 'JCC' print(dic)
一些小知識
# 用一行代碼交換ab的值 a,b = 1,2 print(a,b) a,b = b,a print(a,b)
#當數字在-5-256之間 創建多個數字的地址相同,因為有小數據池 i1 = 6 i2 = 6 #內存地址相同 i3 = 300 i4= 300 #內存地址不相同
=,== is
= ->賦值
== ->比較值是否相等
is ->比較內存地址是否相等
id()-->查看內存地址
17:42