Python基础数据结构之数据转换(Dict,Set,Tuple,List)

本章是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)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值