关键词:globals; eval; callable; dir; ord/chr; repr; reversed/reverse; lambda; filter; map; zip; min; max; sorted/sort
1. locals和globals
函数外部定义变量为全局变量, 函数内部定义变量为局部变量。函数内部修改外部已经定义好的全局变量,或者在函数内部定义全局变量的时候,用globals Num; Num=xxx。
2. eval
从文件里读出来的不要直接用eval,从用户输入的不要用eval,从网络上获取的不要直接用eval,不安全!可运行!
3. callable:
callable可以被调用,名字后面可以加(),检测某个名字可不可以被调用的!
4. dir
查看可以调用哪些方法。
5. ord/chr
print(ord('a'))
print(chr(97))
6. repr
查看变量类型的时候,便于区分肉眼
print(repr('123'))
print(123)
7. reversed/reverse
reversed(l),l本身没有变,而l.reverse(),l本身变了。
8. filter(func, list1)
将list1中的每一个值传到func函数中。filter是一个生成器函数,返回的是一个迭代器。
list1 = [1,2,3,4,45,6]
def func(n):
print(n)
filter(func, list1)
8. map
生成器函数,生成一个迭代器
lst = [12,3,4,5]
ret = map(lambda n: n*2, lst)
for i in ret:
print(i)
9. zip
拉链方法,也是个迭代器,直接打印为内存地址
a = [1,2,3,4]
b = [5,6,7,8]
ret = zip(a, b)
for i in ret:
print(i)
# zip打开方式---均生成迭代器
[*zip(a, b)]---list
list(zip(a, b))--list
dict(zip(a, b))--dict
# 特别的,当a、b为data['node1']和data['node2']时,可以直接放里面
10. min([], key=None)
ret = min([1,2,3,-4,5], key=abs)
dic = {'a':1, 'b':2}
ret = min(dic, key=lambda k:dic[k])
print(ret)
11. sorted
ret = sorted(l, reverse=True, key=abs)
ret = sorted(l, reverse=False, key=lambda n:n%2==0)
# 练习题:
tup1 = (('a', 'b'))
tup2 = (('c', 'd'))
ret = zip(tup1, tup2)
iterator = map(lambda tu:{tu[0]:tu[1]}, ret)
print(list(iterator))