原始16进制数据:s = ['17a', '1', '16', '1f']
思路:打算将s转换成十进制,并存储到字典中,key值就是原始16进制数据,value就是十进制数据,前提是原始16进制没有重复数据,最后按照value值进行排序,再取出key值
合并写法:
- list(dict(sorted({i:int(i,16) for i in s}.items(),key=lambda item:item[1])).keys())
分开写法:
- dic = {i:int(i,16) for i in s}
dic = {'17a': 378, '1': 1, '16': 22, '1f': 31}
根据value值进行从小到大排序:
- # 通过key这个参数,指定排序是按照字典dic中的value,也就是第一个元素item[1]的值来排序,
- # 这里item也可以写其他字母,如果是item[0],则是按照字典dic中的key进行排序
- so = sorted(dic.items(),key=lambda item:item[1])
so = [('1', 1), ('16', 22), ('1f', 31), ('17a', 378)]
将so转换成字典
- so = dict(so)
so = {'1': 1, '16': 22, '1f': 31, '17a': 378}
取出key值转换成list
- result = list(so.keys())
result = ['1', '16', '1f', '17a']