列表 元組 集合 字典
列表
什么是我們日常生活中經常見到的清單。比如,統計過去一周我們買過的東西,把這些東西列出來,就是清單。由於我們買一種東西可能不止一次,所以清單中是允許有重復項的。如果我們擴大清單的范圍,那么這也是一個清單,但這個清單里會有類別不同的項,交水電費也是一種花費,這些項的類型是可以使不同的。python的列表個跟清單的道理是一樣的,特點就是:可重復,類型可不同。類型不同也是跟數組最本質的區別了。python里的列表用“[]”表示:
names1=['zhangsan','lisi','wangermazi','zhaosi',['phone',1000],'wangwu']
#列表讀取
a=names1[1] #listname[position],根據位置取內容 print(a) b=names1.index('zhaosi') #index根據內容找位置 print(names1[0]) #打印下標為0的值 print(names1[1]) #打印下標為1的值 print(names1[-1]) #打印下標為-1的值(倒數第一個) #切片 ":"右邊不包含左邊包含 print(names1[:])#全部打印 print(names1[:3])#打印下標是0到下標為3的值,不包含3 print(names1[:-1])#打印到倒數第二位 print(names1[1:-1])#打印下標為1到倒數第二位 print(names1[::-1])#倒序打印 print(names1[::2])#間隔為2打印全部列表 print(names1[::2])#間隔為2打印全部列表
#列表寫入
#列表追加 append names1.append('Hello world') print(names1) #列表插入insert names1.insert(0,'wanneng') #插入位置,值 print(names1)
#修改
names1[0]='Wanneng' print(names1)
#刪除del
del names1[0] #刪除位置 print(names1) #remove print(names1) names1.remove('zhaosi') #刪除zhaosi如果有多個刪除第一個 print(names1) #pop() 默認刪除最后一個值,可寫明位置 print(names1) names1.pop(-1) #刪除位置編號為-1的值 print(names1)
#擴展extend()
name1=[1,2,3,] name2=[3,4,5] name1.extend(name2) print(name1)
#列表拷貝 name1=[1,2,3,] name2=[3,4,5] name3=name1.copy() name3.append(7) print(name3) print(name1) #列表值統計 name4=name1.extend(name2) print(name4) # print(name4.count(3)) #統計3的個數 #列表排序(字符串和數字混合不能排序,尷尬不) name4.append('7') name4.sort() #正序排序 # line 74, in <module> # names1.sort() # TypeError: '<' not supported between instances of 'list' and 'str' name4[-1]=7 print(name4) name4.reverse()#反序 print(name4) #獲取下標index print(names1) print(names1.index('lisi'))
元組
#寫法,元組只能查詢 #tuple_1=('value1','value2','value3')
list1=(1,2,3,4,3,'make','kobe') print(list1) print(list1.index(3)) #index方法 print(list1.count(3)) #count方法
集合
集合就是我們數學學的集合,沒有什么特殊的定義。集合最好的應用是去重。集合沒有特殊的表示方法,而是通過一個set函數轉換成集合
lst = [ 1, 1, 0] lst_set = set(lst) #lst_set 為1 , 0 print(lst_set) tup = (2, 2, 1) tup_set = set( tup) # tup_set為2 , 1 print(tup_set) # for item in lst_set: print(item)
字典
#字典寫法
data={ 1:11, 2:22, 3:33, 4:{ 4:401, 4:{402:4002 }, }, 'china':'中國', 'chinas':['中國'], } data[2]='葫蘆娃' print(data.get(2))
#字典的寫法 {key:value},key必須是唯一的.
#dict 增加
data[22]='葫蘆娃' data[5]='葫蘆娃' data[2]='葫蘆娃' print(data) #dict 修改 data[2]='222' print(data) #dict 刪除 data.pop(4) #pop刪除key值為4的數據組 del data[2] #del刪除key2 data.popitem() #隨機刪除 print(data)
#dict查找
print(data.get(1)) #獲取key為1的內容,get的值如果不存在返回None print(4 in data) #key 4在不在data字典里面 print(data['china']) #獲取key為china的內容,如果key不存在則會報錯 print(data.keys())
#修改
data['chinas'][0] +='longyao'#值修改為['中國longyao'],值為數組 # data['chinas'] = 'longyao1' #值修改成longyao1 print(data) #setdefault data.setdefault(1,'allen') #創建一個key jp 值allen的條目,如果key存在則不發生改變 print(data) # data2={ 'a':'aa', 'b':'bb', 3:'cc', } data.update(data2) #如果兩個字典中有重復的后者覆蓋之前的沒有的就合並 print(data)
#item 字典變成列表
print(data.items())
#fromkeys初始化一個字典
a=dict.fromkeys([10,9,3],[11,22,'dac']) #初始化一個新的字典(value都是相同的)key 1 2 3 value是[11,22,'dac'] a[10][1]='33333' #這種方法創建的字典由於內存共享修改的后的單個value會全部更改。 print(a)
___________________________
#練習1
創建列表data2
data2={ 'a':'aa', 'b':'bb', 3:'cc', }
打印key 和value的值
1.
for i in data2: print(i,'-----',data2[i])
2.
#轉換成列表把key和value分別賦值給列表的下標0和1 for i,x in data2.items(): print(i,x)
3.
#enumerate獲取行號 for x,y in enumerate(data2.items(),1): #默認從0開始,本例從1開始計數 print(x,y[0],y[1])
練習2
引用for循環if。。。else循環,while ,數組,列表
1.創建列表格式是 商品名稱:商品價格
2.對着寫商品進行增刪改查

#__Author: Playon #__Date: 2016/3/12 12:05 #-*- coding:utf-8 -*- product={ '蘋果':'6', '栗子':'25', '雞蛋':'2.5', '花菜':'26', 'phone':'6000', 'pen':'16', } def price(): #price change choice = input('Please input change goods:') if choice in product: price_new=input('Please input %s new price:'%choice) product[choice]=price_new else: print('Goods %s do not exist!'%choice ) def goods_add(): #goods add choice = input('Input new goods name:') price = input('Input new goods price:') if choice in product: print(choice ,'existed') else: product[choice]=price def goods_del(): # goods del choice = input('Input delete goods:') if choice in product: del product[choice] else: print('%s not existed!') while True: num = 1 #定義商品序號從1開始 for goods in product: print('\033[1;34;m%s.%s\t\t%s\033[0m'%(num,goods,product[goods])) #按照指定格式打印商品 num +=1 #選擇操作類型 choice_plan= input( """\033[0;33;m############## 請選擇 ################ # a---添加商品選擇 a # # e---編輯商品選擇 e # # d---刪除商品選擇 d # # q---退出系統選擇 q # #####################################\033[0m""") if choice_plan == 'a': goods_add() elif choice_plan == 'e': price() elif choice_plan == 'd': goods_del() elif choice_plan == 'q': break else: print('Choice Error!') continue
Please input pen new price:89
1.蘋果 6
2.栗子 25
3.雞蛋 2.5
4.花菜 26
5.phone 6000
6.pen 89
############## 請選擇 ################
# a---添加商品選擇 a #
# e---編輯商品選擇 e #
# d---刪除商品選擇 d #
# q---退出系統選擇 q #
#####################################