我正在寻找一种更加pythonic的2.4方式来做到以下几点:
for (keys, values) in my_dict.iteritems():
fmt_str = '%s, %s' % (keys[0], keys[1])
for value in values:
fmt_str = '%s, %s, %s' % (fmt_str, value[0], value[1])
print fmt_str
注意:my_dict由用于键的元组和用于值的元组列表组成。
答案 0 :(得分:1)
怎么样:
from itertools import chain
for keys, values in my_dict.iteritems():
fmt_str = ', '.join(map(str, chain(keys, *values)))
print fmt_str
如果keys
和values
中的所有值都是字符串,那么您可以删除map(str, ...)
来电:
for keys, values in my_dict.iteritems():
fmt_str = ', '.join(chain(keys, *values))
print fmt_str
答案 1 :(得分:0)
我会用
for (keys, values) in my_dict.iteritems():
pairs = [keys] + list(values)
print ', '.join(['%s, %s' % (pair[0], pair[1]) for pair in pairs])
如果我真的要使用Python 2.4(AFAIR当时有列表推导,但没有生成器表达式)。
在以后的版本中,我确实会使用生成器表达式并执行
print ', '.join('%s, %s' % (pair[0], pair[1]) for pair in pairs)
甚至
print ', '.join('%s, %s' % (pair[0], pair[1]) for pair in itertools.chain([keys], values))