1. 判断字典的键值是否存在:
1. has_key()
a = {'a' : 1}
print a.has_key('a'):
#####
True
2. in
a = {'a': 1}
print 'b' in a
#####
False
2. 排序sort
demo = {'c': [('a', 20), ('b', 40)], 'd': [('e', 10), ('f', 1)]}
# 方法1
b = sorted(demo.items(), key=lambda x: x[1][0][1])
print b
# 方法2
for i in demo.values():
i.sort(key=lambda x: x[1])
print demo
#####
[('d', [('e', 10), ('f', 1)]), ('c', [('a', 20), ('b', 40)])]
{'c': [('a', 20), ('b', 40)], 'd': [('f', 1), ('e', 10)]}
可以看出,方法1的sorted()
方法是有返回值的,该方法排的是元祖内第二个元素的值,但是它比的是'a'
的值与'e'
的值相比,并不是同级相比。
方法2的sort()
方法是没有返回值的,是在原先的字典中直接排序的,在这里是对列表内元祖的值进行排序,是在列表内部排序,对比的是'a'
和'b'
的值。
参考:
python sort函数内部实现原理
Python 字典 列表 嵌套 复杂排序大全
3. six
说白了,就是一个兼容python2和python3的一个包,会根据不同的版本返回与之相应的函数,我用到的是itervalues()
参考:
4.U开头的字符串怎么转码
通常会有字符串像这样'u\u534e\u5317 3 \u53ef\u7528\u533a A'
,而且在一些情况下会出错,这时候,为了保证代码的适用性,可以添加这个:
from __future__ import absolute_import, print_function, unicode_literals
absolute_import:是把import的目录从最开始找(可以用.),print_function是把print sth
改为print(sth)
,unicode_literals:可把asci码转成unicode