我有一本字典(dict_),上面有一系列整数作为值.

下面我对这些列表进行操作,如果元素大于5,则添加2.我使用嵌套的for循环来实现这一点.我如何通过字典理解达到同样的效果?

dict_={'a':[5, 8, 7],
      'b':[4, 7, 2],
      'c':[2, 2, 4]}

print(dict_)
#Output: {'a': [5, 8, 7], 'b': [4, 7, 2], 'c': [2, 2, 4]}

dict_new = {}

for k, v in dict_.items():
    list_temp=[]
    for e in v:
        if e > 5:
            ne=e + 2
            list_temp.append(ne)
        else:
            list_temp.append(e)
    
    dict_new[k] = list_temp

print(dict_new)
# Output: {'a': [5, 8, 7], 'b': [4, 7, 2], 'c': [2, 2, 4]}

推荐答案

这可能是你的口述理解:

{k: [i if i <= 5 else i + 2 for item in v] for k, v in dict_.items()}

请注意,您还需要对这些值进行列表理解.

注意到False基本上是0True1,你可以简化(但可能会让它更模糊?) list 如下:

{k: [i + 2 * (i > 5) for i in v] for k, v in dict_.items()}

Python相关问答推荐

如何在BeautifulSoup/CSS Select 器中处理regex?

OpenGL仅渲染第二个三角形,第一个三角形不可见

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

如何在Python中将超链接添加到PDF中每个页面的顶部?

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

如何在SQLAlchemy + Alembic中定义一个"Index()",在基表中的列上

Polars表达式无法访问中间列创建表达式

在聚合中使用python-polars时如何计算模式

将索引表转换为Numy数组

如何判断变量可调用函数的参数是否都属于某个子类?

更改我的NN中的隐藏层数会导致错误

滚动加权平均(或类似)填充失踪大Pandas

设置邮箱附件的文件类型

如何使一个更有效的映射函数基于一个以另一个嵌套框架的索引和列名作为其数据集的嵌套框架?

ImportError Django无法导入名称SignupView'

我想把字转换成8位二进制,但某些字符是7位的

SCRIT-学习定制转换器从底层模型抛出NotFittedError

在Python中使用";swmm_api";包中的";lid_use";时出错?

Lxml xPASS在XML中的第一个标记下面找不到标记