python列表、元组、字典、集合区别及他们之间的转换(超全)

您所在的位置:网站首页 python元组列表字典集合的开辟 python列表、元组、字典、集合区别及他们之间的转换(超全)

python列表、元组、字典、集合区别及他们之间的转换(超全)

2024-07-15 08:39| 来源: 网络整理| 查看: 265

今天想先总结一下python中数据结构区别以及他们之间能如何转换

        1. 基本属性

数据结构

列表(list)

元组(tuple)

字典(dict)

集合(set)

基本形式

[123, 'python', ('python', 123)]

('A','B','C','1')

{'A':7,'B':1,'C':9}

{123, 'python', ('python', 123)}

是否有序

是否可变

特征

键值唯一

元素不重复

添加

append,extend ,insert

不可修改

dic['key']=vaule

add,update

删除

pop,remove

pop

pop,discard,remove

修改

list[index]=vaule

dic['key']=vaule

其他

sort,reverse

cmp

get,items,values

Intersection,union,difference,symmetric_difference

        2. 数据结构之间的相互转换

        (1)字符串与列表的相互转换

#字符串转列表 print(list('I love you') ) str = "I love you" list2 = str.split(" ") print(list2) #列表转字符串 list3 = ['I', 'love', 'you'] str2 = "".join(list3) print(str2) str3 = ".".join(list3) print(str3) str4 = " ".join(list3) print(str4) # 将列表字符串转化为列表 #方法1 import ast data = "[1, 2, 3, 4, 5]" data_new = ast.literal_eval(data) print(data_new) #方法2 list3 = data.strip('[').strip(']').split(',') print(list3) list4 = [int(i) for i in list3] print(list4, type(list4)) #方法3 list5 = list(eval(data)) print(list5)

输出为

['I', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u'] ['I', 'love', 'you'] Iloveyou I.love.you I love you [1, 2, 3, 4, 5] ['1', ' 2', ' 3', ' 4', ' 5'] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]

        (2)列表与元组的相互转换

#列表转元组 li = [1, 2, 3] li2= ['I', 'love', 'you'] tu = tuple(li) tu2 = tuple(li2) print(tu,tu2, type(tu)) # 元组转列表 tu3 = ('I', 'love', 'you') li3 = list(tu3) print(li3, type(li))

输出结果为:

(1, 2, 3) ('I', 'love', 'you') ['I', 'love', 'you']

        (3)集合与列表的转换

# 列表转集合(去重) list1 = [6, 7, 7, 8, 8, 9] list2=["hello",1,1+3j,1,"2","3","2",3] s1 = set(list1) s2 = set(list2) print(s1,s2) #集合转列表 s3 = {0, 1, 3, 9, 5, 7, 45} list3 = list(s3) print(list3) # 列表去重,并保持原来列表的顺序 list1_1 = list(set(list1)) list2_1 = list(set(list2)) print(list1_1,list2_1) list1_1.sort(key = list1.index) list2_1.sort(key = list2.index) print(list1_1,list2_1)

输出结果为:

{8, 9, 6, 7} {1, 3, (1+3j), '2', '3', 'hello'} [0, 1, 3, 5, 7, 9, 45] [8, 9, 6, 7] [1, 3, (1+3j), '2', '3', 'hello'] [6, 7, 8, 9] ['hello', 1, (1+3j), '2', '3', 3]

        (4)元组与集合的转换

与列表与集合的转换基本一致,要注意的是元组没有用来排序的sort函数,给元组排序可以先将元组转换为列表再进行排序。

        (5)列表与字典的转换

#列表转字典 #方法1 list1 = ['name', 'age', 'sex'] list2 = ['张三', 18, '男'] list3 = ['张三', 18, '男', '大一'] dict1 = {} for i in range(len(list1)): dict1[list1[i]] = list2[i] print(dict1, type(dict1)) #方法2 dict2 = dict(zip(list1, list2)) dict3 = dict(zip(list1, list3)) #两个列表长度可以不一样 print(dict2,dict3) #方法3 嵌套列表转为字典 li1 = ['name','张三'] li2 = ['age',18] li3 = ['sex','男'] li4 = [li1,li2,li3] print(dict(li4)) # 相当于遍历子列表,如下 dict4 = {} for i in li4: dit[i[0]] = i[1] #方法4 元组列表转为字典 list4 = [('name', '张三'), ('age', 18), ('sex', '男')] dict5 = dict(list4) print(dict5) #字典转列表 #方法1 dict1 = {'name': '张三', 'age': 18, 'sex': '男'} list1 = list(dict1) print(list1) #list函数默认将字典中key取出 与下面等同 list2 = list(dict1.keys()) print(list2) list3 = list(dict1.values()) print(list3) list4 = list(dict1.items()) print(list4) #方法2 比较原始 lst_key=[] lst_value=[] for key,value in dict1.items(): lst_key.append(key) lst_value.append(value) print (lst_key) print (lst_value)

输出结果如下:

{'name': '张三', 'age': 18, 'sex': '男'} {'name': '张三', 'age': 18, 'sex': '男'} {'name': '张三', 'age': 18, 'sex': '男'} {'name': '张三', 'age': 18, 'sex': '男'} {'name': '张三', 'age': 18, 'sex': '男'} ['name', 'age', 'sex'] ['name', 'age', 'sex'] ['张三', 18, '男'] [('name', '张三'), ('age', 18), ('sex', '男')] ['name', 'age', 'sex'] ['张三', 18, '男']

        (6)元组和字典的转换

字典转换为元组与上面字典转换为列表一直,不同的是元组不能转成字典

        (7)集合与字典的转换

#集合转换为字典 #两个集合zip list_keys = {'name', 'age', 'sex'} list_values = {'张三', 18, '男'} new_dict = dict(zip(list_keys, list_values)) print(new_dict) print(type(new_dict)) #有不同的键但每个键值相等 dict2 = dict.fromkeys(list_keys,'22') print(dict2) #等同于 dict3 = {i:'22' for i in list_keys} print(dict3) #字典转换为集合与字典转化为列表相似

输出结果为:

{'name': '男', 'sex': 18, 'age': '张三'} {'name': '22', 'sex': '22', 'age': '22'} {'name': '22', 'sex': '22', 'age': '22'}

        (8)字典key和value值转换

dict1 = {'name': '张三', 'age': 18, 'sex': '男'} dict2 = {value: key for key, value in dict1.items()} print(dict2)

结果为:

{'张三': 'name', 18: 'age', '男': 'sex'}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3