更多pythonic方式处理列表和dicts

时间:2013-10-16 16:36:46

标签: python dictionary python-2.4

我正在寻找一种更加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由用于键的元组和用于值的元组列表组成。

2 个答案:

答案 0 :(得分:1)

怎么样:

from itertools import chain

for keys, values in my_dict.iteritems():
    fmt_str = ', '.join(map(str, chain(keys, *values)))
    print fmt_str

如果keysvalues中的所有值都是字符串,那么您可以删除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))
相关问题