Python基礎資料結構之資料轉換(Dict,Set,Tuple,List)
阿新 • • 發佈:2019-01-02
本章是Python基礎資料結構的第六篇,由於之前沒有接觸過太多的Python版本的資料結構,所以在學習的過程中集百家之長和自己的見解,加以實踐,學習Python。
Python中用到tuple的方法,和注意事項都以程式碼的形式體現
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017-4-24 16:19
# @Author : coderManFans
# @Site : 資料結構轉換demo
# @desc set,list,dict,tuple之間的相互轉換
# @File : dataconvertDemo.py
# @Software: PyCharm
#1. list轉--->set,dict,tuple
#1.1 list轉set 注意:1.重複資料會被清除 2.不保證順序
list1 = [2,3,44,3,3,3,33,3,3,23]
set1 = set(list1)
print(set1)
#1.2 list轉dict 不保證順序
#1.2.1 方法1,需要兩個list,分別對應於key list,value list
list2 = ['key1','key2','key3','key4']
list3 = [1,3,3,2]
dict1 = dict(zip(list2,list3))
print(dict1)
#1.2.2 方法2,將巢狀列表轉換為字典,就是二維陣列,如果某個元素不是二維陣列則報錯
list4 =[['a','we'],['b','are'],['c','a'],['d','family']]
dict2 = dict(list4)
print(dict2)
#1.2.3 方法3,迴圈轉換
dict3 = {}
for i in list4:
dict3[i[0]] = i[1]
print(dict3)
#3. list轉tuple
list5 = [2,3,4,3,43,'232']
tup1 = tuple(list5)
tup2 = tuple(list4)
print(tup1)
print(tup2)
#2. set--->list,dict,tuple
#2.1 set轉list 重複元素在set中被清除,list只有不重複元素
set2 = set('asdfasdfs2323sdfasdf')
list6 = list(set2)
print(list6)
set3 = set(['23','222','23','2324','adfasd','1'])
list7 = list(set3)
print(list7)
#2.2 set轉dict 不能轉換,set裡面不分鍵值,全是值,或者全是鍵,dict兩種都有
#2.3 set轉tuple
set4 = set('asdfasdfasdf323')
tup3 = tuple(set4)
print(tup3)
set5 = set([2,3,43,43,433,323,2,43])
tup4 = tuple(set5)
print(tup4)
#3. dict-->list,set,tuple
#3.1 dict轉list 轉換為兩個list 一個是key list,另一個value list
dict4 = {'a':1,'b':2,'c':3}
list8 = list(dict4.keys())
print(list8)
list9 = list(dict4.values())
print(list9)
#3.2 dict轉set,set轉dict 不能轉換,set裡面不分鍵值,全是值,或者全是鍵,dict兩種都有
#3.3 dict轉tuple 轉換為兩個tuple key-tuple,value-tuple
dict5 = {'age':23,'name':'zhangsan','school':'ssdsd','money':230.2323}
tup5 = tuple(dict5)
print(tup5)
tup6 = tuple(dict5.values())
print(tup6)
#4. tuple--->list,dict,set
#4.1 tuple轉list
tup7 = ('232','23232',2323,'weasdfasd')
list9 = list(tup7)
print(list9)
#4.2 tuple轉set
tup8 = ('2323','sdfsdf','2323','sdds','wwe','2323',23,23.33)
set6 = set(tup8)
print(set6)
#4.3 tuple轉dict 無法轉換 tuple不可變,同時沒有key,value的含義
tup9 = (('a',1),('b',2),('c',3),('d',4))
dict6 = dict(tup9)
print(dict6)
#複合資料型別
dict7 = {"a":[1,2,3,4,5],"b":[2,4,5,6,7],"c":[4,5,6,7,9,0]}
for x in dict7:
if 2 in dict7[x]:
dict7[x].extend([2,3,45,6])
print(dict7)
dict8 = {"a":{"2",'sd',3,3,3,"we"},"b":{"sdf",23,"sdf",222,'sd'}}
print(dict8)