1、列表排序
ls = [4, 6, 2, 7, 3, 1, 8]
ls.sort()
ls.sort(reverse=True)
使用sorted(),sorted有返回值,默认升序,参数 reverse=True
ls = [4, 6, 2, 7, 3, 1, 8]
sorted_ls = sorted(ls)
2、字典排序
orig = dict((
('c', 1),
('b', 2),
('a', 3),
('special', dict((
('c', 3),
('b', 2),
('a', 1),
)))
))
print(orig)
sorted_copy = dict(sorted(orig.items(), key=lambda x: x[0])) # x[0]表示以键排序,x[1]表示以值排序
print("sorted_copy",sorted_copy)
3、列表嵌套字典排序,仍然使用sorted(),默认升序,排序的key使用lambda函数
# sorted第一个参数直接跟列表,lambda选取排序的字典的键
本质上 上面两个都是一样 orig.items()将字典第一层级的键值对全部取出形成列表。
orig = [
('c', 1),
('b', 2),
('a', 3),
('special', 4)
]
print(orig)
sorted_copy = dict(sorted(orig, key=lambda x: x[0])) # x[0]表示以键排序,x[1]表示以值排序
print("sorted_copy",sorted_copy)
4、字典嵌套字典
orig = {
"c": 1,
"b": 2,
"a": 3,
'd': {
"c": 3,
"b": 2,
"d": 1,
"a": {
"b": 2,
"a": 1
}
}
}
orderDict = dict()
# 递归嵌套
def sortDict(orgindict, flag, Orderdict):
# 结束条件
if flag:
return Orderdict
# 循环体
for key in sorted(orgindict):
if isinstance(orgindict[key], dict):
# 如果值为字典将继续遍历排序
order = dict()
orgindict[key] = sortDict(orgindict[key], flag, order)
Orderdict[key] = orgindict[key]
flag = True
return Orderdict
print(sortDict(orig, False, orderDict))
上面方法临时想的~没有细研究,仅做参考
还有使用OrderedDict进行排序,
from collections import OrderedDict
orderDict = OrderedDict()
# 递归嵌套
def sortDict(orgindict, flag, Orderdict):
# 结束条件
if flag:
return Orderdict
# 循环体
for key in sorted(orgindict):
if isinstance(orgindict[key], dict):
# 如果值为字典将继续遍历排序
order = OrderedDict()
orgindict[key] = sortDict(orgindict[key], flag, order)
Orderdict[key] = orgindict[key]
flag = True
return Orderdict
print(sortDict(orig, False, orderDict))
sorted_copy = OrderedDict(sorted(orig.items(), key=lambda x: x[0]))
顺便记录一个MD5加密函数
# 使用MD5进行加密
def encodeByMD5(sign):
md5 = hashlib.md5()
md5.update(sign.encode(encoding='utf-8'))
return md5.hexdigest()