【发布时间】:2021-08-19 14:35:08
【问题描述】:
我目前有一堆列表定义如下:
old_list = [1, 2, 3, 4, 5]
我目前正在替换该列表的第一个元素,然后通过执行以下操作将列表的内容放入字典(其中键是旧元素 0 值):
old_value = old_list[0]
old_list[0] = 'new value'
test_dict[old_value] = old_list
我想知道,这是实现这一目标的最佳方式吗?我想知道是否有一种方法可以通过列表理解来提高效率,使其看起来更像这样:
test_dict[old_list[0]] = [i for idx, i in enumerate(old_list) if '''relevant conditions to replace element 0''']
【问题讨论】:
-
如果我给你指点dict comprehensions,你能找到解决办法吗? (不过,您需要一种方法来遍历
old_lists) -
我会说您的原始方法很好,尽管使用列表组合绝对可以。
test_dict[old_list[0]] = ['newvalue' if idx == 0 else i for idx, i in enumerate(old_list)] -
试试:
[i if idx != 0 else "new_value" for idx, i in enumerate(old_list)] -
不过,列表推导会构建一个新列表,而不是简单地就地替换原始元素中的一个元素。
-
@user3153443 请记住,列表理解并不是最节省内存(和时间效率)的解决方案。简单地替换一个元素会更有效
标签: python list replace list-comprehension element