【问题标题】:breaking down list comprehension in python [duplicate]在python中分解列表理解[重复]
【发布时间】:2021-04-20 23:08:28
【问题描述】:

我有这一行的理解,并试图将其分解以理解它:

 units = dict((s, [u for u in unitlist if s in u]) for s in boxes)

到目前为止,我已经想出了这个,但它没有给出相同的输出:

u = []
for s in boxes:
    for u in unitlist:
        if s in u:
            u.append(u)
            units = dict(u)

请建议,也请指导我到任何我能理解如何更好地在两者之间切换的地方。我发现没有一个衬线更容易理解代码。

【问题讨论】:

    标签: python


    【解决方案1】:

    带有列表理解的原始表达式:

    units = dict((s, [u for u in unitlist if s in u]) for s in boxes)
    

    经典再现:

    units = {}
    
    for s in boxes:
        values = []
        for u in unitlist:
            if s in u:
                values.append(u)
    
        units[s] = values
    

    您的原始表达式是“创建一个由key, value 对组成的dict(),其中skey,单元列表的子列表为value

    您的表达式还表示存在一个条件:尽管所有 s in boxes 都将作为您的 units 字典中的键找到,但关联的值将等于或 u 的子列表。

    【讨论】:

    • 谢谢你帮了我很多,我现在已经用其他列表推导完成了。
    猜你喜欢
    • 2017-09-25
    • 2011-06-15
    • 2015-11-28
    • 1970-01-01
    • 2021-10-06
    • 2018-06-24
    • 2018-03-20
    • 2017-02-27
    • 2018-08-31
    相关资源
    最近更新 更多