源自《Python cookbook》第3版7.1节第2个例子:
import html # available only in Python 3.x
def make_elements(name, value, **attrs):
keyvals = [' %s="%s"' % item for item in attrs.items()]
attr_str = ''.join(keyvals)
element = '<{name}{attrs}>{value}</{name}>'.format(
name = name,
attrs = attr_str,
value = html.escape(value))
return element
make_elements('item', 'Albatross', size='large', quantity=6)
make_elements('p', '<spam>')
程序的作用很简单,就是生成HTML标签,注意html这个模块只能在Python 3.x才有。
起初我只是注意到,生成标签属性列表的keyvals这个dictionary类型变量构建的方式很有意思,两个%s对应一个item,所以就查阅了相关的资料,结果扯出了挺多的东西,在此一并总结。
注:下面所有Python解释器使用的版本,2.x 对应的是2.7.3,3.x 对应的是3.4.1
在 Python 2.x 里,官方文档里items的方法是这么说明:生成一个 (key, value) 对的list,就像下面这样:

本文探讨了Python字典的items()方法在2.x和3.x版本中的变化,以及与iteritems()、viewitems()的区别。在2.x中,items()返回列表,而iteritems()返回迭代器以节省内存。3.x中,items()直接返回反映字典变化的视图对象,与2.7新增的viewitems()一致。在3.x中,不再需要区分items()与其他两者。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



