代码之家  ›  专栏  ›  技术社区  ›  significance

用python重新组合这两个列表的聪明方法

  •  1
  • significance  · 技术社区  · 14 年前

    names = ['banana','grapefruit','apple']
    colors = ['yellow','pink','green']
    

    fruits = [
    {'name':'banana','color':'yellow'}, 
    {'name':'grapefruit','color':'pink'},
    {'name':'apple','color':'green'}
    ]
    

    最好的方法是什么?我现在绞尽脑汁想写循环。

    请帮忙!:)

    2 回复  |  直到 14 年前
        1
  •  11
  •   Philipp    14 年前
    fruits = [{"name": name, "color": color} for name, color in zip(names, colors)]
    
        2
  •  9
  •   user395760 user395760    14 年前
    [ {'name': name, 'color': color} for name, color in zip(names, colors) ]
    

    通常的条款和条件适用于:

    • 在Python2中,itertools.izip对于潜在的大型列表是可取的
    • 如果实际数据有许多列表/属性,则可以将其概括为在大规模上更优雅
    • 如果密封损坏,保修无效