本章是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)