image.png

# 根据长度排序

fruits = ['strawberry', 'fig', 'apple', 'cherry', 'raspberry', 'banana'] sorted(fruits, key=len) ['fig', 'apple', 'cherry', 'banana', 'raspberry', 'strawberry']

# 函数编程与列表推导

list(map(fact, range(6))) ➊ [1, 1, 2, 6, 24, 120] [fact(n) for n in range(6)] ➋ [1, 1, 2, 6, 24, 120] list(map(factorial, filter(lambda n: n % 2, range(6)))) ➌ [1, 6, 120] [factorial(n) for n in range(6) if n % 2] ➍ [1, 6, 120]

# reduce

from functools import reduce ➊ from operator import add ➋ reduce(add, range(100)) ➌ 4950 sum(range(100)) ➍ 4950

# 结果

None <code object tag at 0x000001902D2EA1E0, file "D:/file/python/today/today.py", line 1> ('name', 'cls', 'content', 'attrs') 1

def tag(name, *content, cls=None, **attrs): """生成一个或多个HTML标签""" if cls is not None: attrs['class'] = cls if attrs: attr_str = ''.join(' %s="%s"' % (attr, value) for attr, value in sorted(attrs.items())) else: attr_str = '' if content: return '\n'.join('<%s%s>%s</%s>' % (name, attr_str, c, name) for c in content) else: return '<%s%s />' % (name, attr_str)

print(tag.defaults) print(tag.code) print(tag.code.co_varnames) print(tag.code.co_argcount)

# functools,operator

from functools import reduce from operator import mul def fact(n): return reduce(mul, range(1, n+1))

image.png

# attrgetter提取属性

from operator import attrgetter name_lat = attrgetter('name', 'coord.lat') # ➎ for city in sorted(metro_areas, key=attrgetter('coord.lat')): # ➏ ... print(name_lat(city))

# methodcaller

from operator import methodcaller s = 'The time has come' upcase = methodcaller('upper') upcase(s) 'THE TIME HAS COME' hiphenate = methodcaller('replace', ' ', '-') hiphenate(s) 'The-time-has-come'

729 篇文章27 人订阅

0 条评论