Python3 字典、二维元组、二维列表之间的转化

字典排序问题

注意:使用字典时,字典中键(key)不能重复(值(value)可以重复),相同的键(key),后者的值(value)会覆盖前者的值(value)。
使用二维元组可以避免上述问题。

输入

# 字典排序    缺点:键不能重复    ##字典中没有顺序,排序随机??
dict1 = {'b':0, 'c':4, 'a':2, 'a':1, 'f':0}                          #字典中键不能重复,第三项会被第四项覆盖
dict2 = dict(sorted(dict1.items(), key = lambda asd:asd[1], reverse= True))
print(dict1,'字典按值降序排列:  ',dict2)
dict3 = dict(sorted(dict1.items(), key = lambda asd:asd[0]))
print(dict1,'字典按键升序排列:  ',dict3)
dict4 = dict(tuple(reversed(items)) for items in dict1.items())      #注意:反转后的字典,相同键的项会被偏后者覆盖
print(dict1,'字典的每项反转后为:',dict4)

输出

{'b': 0, 'c': 4, 'a': 1, 'f': 0} 字典按值降序排列:   {'c': 4, 'a': 1, 'b': 0, 'f': 0}
{'b': 0, 'c': 4, 'a': 1, 'f': 0} 字典按键升序排列:   {'a': 1, 'b': 0, 'c': 4, 'f': 0}
{'b': 0, 'c': 4, 'a': 1, 'f': 0} 字典的每项反转后为: {0: 'f', 4: 'c', 1: 'a'}       #注意:反转后的字典,相同键的项会被偏后者覆盖

字典与二维元组

输入

# 字典转化为二维元组
dict1 = {'b':0, 'c':4, 'a':2, 'f':0}
tuple0 = tuple(items for items in dict1.items())                        #字典的每一项转换为二维元组
print(dict1,'字典转换为二维元组:             ',tuple0)
tuple1 = tuple(tuple(reversed(items)) for items in dict1.items())       #字典的每一项反转后转换为二维元组
print(dict1,'字典的每一项反转后转换为二维元组:',tuple1)

输出

{'b': 0, 'c': 4, 'a': 2, 'f': 0} 字典转换为二维元组:              (('b', 0), ('c', 4), ('a', 2), ('f', 0))
{'b': 0, 'c': 4, 'a': 2, 'f': 0} 字典的每一项反转后转换为二维元组: ((0, 'b'), (4, 'c'), (2, 'a'), (0, 'f'))

二维元组与二维列表

输入

# 二维元组转化为二维列表
tuple1 = (('b',1), ('c',4), ('a',2),('a',1))
list1 = list(list(items) for items in list(tuple1))                     #二维元组转换为二维列表
print(tuple1,'二维元组转换为二维列表:',list1)
list2 = list(list(reversed(list(items))) for items in list(tuple1))     #二维元组转换为二维列表,并每项反转
print(tuple1,'二维元组转换为二维列表,并每项反转:', list2)

输出

(('b', 1), ('c', 4), ('a', 2), ('a', 1)) 二维元组转换为二维列表:            [['b', 1], ['c', 4], ['a', 2], ['a', 1]]
(('b', 1), ('c', 4), ('a', 2), ('a', 1)) 二维元组转换为二维列表,并每项反转: [[1, 'b'], [4, 'c'], [2, 'a'], [1, 'a']]
发布了10 篇原创文章 · 获赞 10 · 访问量 1059

猜你喜欢

转载自blog.csdn.net/qq_27003337/article/details/105031062