日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python語言學(xué)習(xí)之列表、元祖、字典那些事:python和列表、元祖、字典的使用方法之詳細(xì)攻略

 Four兄 2019-08-24

Python語言學(xué)習(xí)之列表、元祖、字典那些事:python和列表、元祖、字典的使用方法之詳細(xì)攻略

目錄

列表、元祖、字典那些事

0、創(chuàng)建空列表

1、列表統(tǒng)計、循環(huán)、代替

2、創(chuàng)建多個空列表的方法及其應(yīng)用范圍

3、Python查找列表中的重復(fù)元素那些事

4、利用for循環(huán)依次輸出的單條信息存在一個列表內(nèi)

5、對字典進(jìn)行排序


列表、元祖、字典那些事

0、創(chuàng)建空列表

  1. citys_list=[[]]*len(dup_list) #出了很多錯誤,append不能向列表內(nèi)列表添加元素
  2. citys_tuple=(tuple(citys_list)) #輸出([], [], [], [])但是不同于直接創(chuàng)建元祖citys_tuple=([],[],[],[])

 

1、列表統(tǒng)計、循環(huán)、代替

  1. #對列表內(nèi)元素各統(tǒng)計個數(shù),并生成字典,然后分別取出keys、values各組成列表
  2. list=['America', 'America', '山東', '山東', '吉林', '山東', '上海', '上海']
  3. print(list.count('山東')) #計算列表指定元素的個數(shù)
  4. #計算列表每個元素的個數(shù)并生成字典
  5. list_dict = {}
  6. for i in list:
  7. if list.count(i) >= 0:
  8. list_dict[i] = list.count(i)
  9. print(list_dict)
  10. keys=list_dict.keys()
  11. print(keys) #但是,輸出的是dict_keys(['America', '山東', '吉林', '上海'])
  12. #for循環(huán)遍歷字典分別取出keys、values各組成列表
  13. Keys=[]
  14. Values=[]
  15. for key in list_dict.keys(): #for循環(huán)遍歷字典的keys、values
  16. print(key)
  17. Keys.append(key)
  18. for value in list_dict.values():
  19. print(value)
  20. Values.append(value)
  21. print(Keys)
  22. print(Values)
  23. #列表里的元素進(jìn)行替換,使用列表解析的方法
  24. #替換列表中的某個元素,輸出新列表只能替換一次,不能for循環(huán)替換,因為x不是個循環(huán)的變量
  25. lst = ['1', '2', '3']
  26. newlst = ['4' if x == '1' else x for x in lst]

2、創(chuàng)建多個空列表的方法及其應(yīng)用范圍

  1. #創(chuàng)建多個空列表的方法及其應(yīng)用范圍
  2. lists01=([],[],[],[]) ##T1、此為創(chuàng)建已知個數(shù)的空列表,同時滿足向大列表中元素小列表添加元素時,不保證同步。
  3. lists02=[[]]*4 ##T2、魔法乘法不合適,如list1=[[]]*n,這種方式不能滿足append的方法
  4. #T3、真正意義上的創(chuàng)建空列表
  5. def create_empty_lists(num):
  6. lists= []
  7. for i in range(num):
  8. lists.append([])
  9. return lists
  10. lists =create_empty_lists(5)
  11. print(lists)

3、Python查找列表中的重復(fù)元素那些事

(1)、實現(xiàn)查找列表中重復(fù)元素

  1. #1、實現(xiàn)查找列表中重復(fù)元素
  2. dict2list=['汕頭', '杭州', '周口', '廣元', '佛山', '佛山', '上海', '寧波', '東莞', '臺州', '仙桃', '陽泉', '安慶', '泉州', '黃岡', '宿遷', '黃岡', '常州', '杭州', '潮州', '東陽', '淮安', '重慶', '廊坊', '威海', '黃石', '北京', '成都', '保定', '上海', '佛山', '紹興']
  3. #T1、對列表中是重復(fù)的元素,就輸出
  4. for i in dict2list:
  5. if dict2list.count(i)>=2:
  6. print('該元素%s重復(fù)'%i)
  1. #T2 查找重復(fù)的元素
  2. list1=dict2list
  3. list2=list1.copy() #為了不破壞原數(shù)據(jù),臨時淺復(fù)制給變量list2
  4. list3=list(set(list2)) #使用set()函數(shù)將list2轉(zhuǎn)為集合去掉重復(fù)元素又用list()轉(zhuǎn)回列表
  5. for i in list3: #對無重復(fù)元素的列表list3迭代
  6. if i in list2:
  7. list1.remove(i) #當(dāng)list3內(nèi)的元素存在于list2中,則把其元素從list2中刪除,最后就會留下重復(fù)元素
  8. print('list1:%s中的重復(fù)元素有:%s'%(list1,list2)) #組后輸出原數(shù)據(jù)list1和最終結(jié)果list2
  9. list1:['佛山', '黃岡', '杭州', '上海', '佛山']中的重復(fù)元素有:['汕頭', '杭州', '周口', '廣元', '佛山', '佛山', '上海', '寧波', '東莞', '臺州', '仙桃', '陽泉', '安慶', '泉州', '黃岡', '宿遷', '黃岡', '常州', '杭州', '潮州', '東陽', '淮安', '重慶', '廊坊', '威海', '黃石', '北京', '成都', '保定', '上海', '佛山', '紹興']

(2)、查找列表內(nèi)每個元素、每個元素對應(yīng)重復(fù)次數(shù)

  1. #T3、查找列表內(nèi)每個元素、每個元素對應(yīng)重復(fù)次數(shù)
  2. a = dict2list
  3. b = set(a)
  4. for each_b in b:
  5. count = 0
  6. for each_a in a:
  7. if each_b == each_a:
  8. count += 1
  9. print(each_b, ': ', count)
  10. 潮州 : 1
  11. 佛山 : 3
  12. ……
  13. 保定 : 1
  14. 杭州 : 2
  15. 東陽 : 1
  16. ……
  17. 臺州 : 1
  18. 寧波 : 1
  19. 黃岡 : 2
  20. 廣元 : 1
  21. ……

(3)、查找重復(fù)元素并輸出重復(fù)的元素的索引值

  1. #T4、查找重復(fù)元素并輸出重復(fù)的元素的索引值
  2. a = dict2list
  3. source = a
  4. from collections import defaultdict
  5. def list_duplicates(seq):
  6. tally = defaultdict(list)
  7. for i,item in enumerate(seq):
  8. tally[item].append(i)
  9. return ( (key,locs) for key,locs in tally.items()
  10. if len(locs)>1 )
  11. for dup in sorted(list_duplicates(source)):
  12. print(dup)
  13. ('上海', [6, 29])
  14. ('佛山', [4, 5, 30])
  15. ('杭州', [1, 18])
  16. ('黃岡', [14, 16])

(4)、比較并輸出兩個列表中的相同元素和不同元素

  1. list1 = ['筆記本電腦 ', '手提包 ', '人類 ', '人類 ']
  2. list2 = ['筆記本電腦 ', '手機(jī)','手提包 ', '人類 ', '人類 ']
  3. same_element = [x for x in list1 if x in list2]
  4. different_element = [y for y in (list1+list2) if y not in same_element]
  5. print(same_element)
  6. print(different_element)
  7. ['筆記本電腦 ', '手提包 ', '人類 ', '人類 ']
  8. ['手機(jī)']

4、利用for循環(huán)依次輸出的單條信息存在一個列表內(nèi)

  1. import os #將for循環(huán)依次輸出的單條信息存在一個列表內(nèi)
  2. path ='F:\\File_Python\\Python_example\\faceRecognition-master\\Original_picture\\Jason_niu'
  3. for fpathe,dirs,fs in os.walk(path):
  4. list=[]
  5. for f in fs:
  6. x=os.path.join(fpathe,f)
  7. list.append(x)
  8. print(list)

5、對字典進(jìn)行排序

  1. #字典排序:將兩個列表組成字典內(nèi)的keys、values進(jìn)行排序
  2. x = ['LiR', 'RFR', 'ETR', 'SGDR', 'GBR', 'LGB']
  3. model_score = [0.6, 0.7, 0.4, 0.8, 0.1, 0.5]
  4. accuracy_dict = dict(zip(x,model_score))
  5. dict_sort_by_key=sorted(accuracy_dict.items()) #按照key排序
  6. print(dict_sort_by_key)
  7. dict_sort_by_value=sorted(accuracy_dict.items(),key=lambda x: x[1],reverse=False) #按照value排序
  8. print(dict_sort_by_value)
  9. dict_sort_by_value_keys = dict(dict_sort_by_value).keys()
  10. dict_sort_by_value_values = dict(dict_sort_by_value).values()
  11. print(list(dict_sort_by_value_keys) )
  12. print(list(dict_sort_by_value_values) )
  13. [('ETR', 0.4), ('GBR', 0.1), ('LGB', 0.5), ('LiR', 0.6), ('RFR', 0.7), ('SGDR', 0.8)]
  14. [('GBR', 0.1), ('ETR', 0.4), ('LGB', 0.5), ('LiR', 0.6), ('RFR', 0.7), ('SGDR', 0.8)]
  15. ['GBR', 'ETR', 'LGB', 'LiR', 'RFR', 'SGDR']
  16. [0.1, 0.4, 0.5, 0.6, 0.7, 0.8]

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多