我有list_a和list_b,这两个列表都有一个顺序的项目。
每次在list_b中遇到0时,我都希望从list_a和list_b中删除与该索引相关的条目。我不知道该怎么做。
# Before modification
list_a = [ '2019', '2020', '2021', '2022', '2023' ]
list_b = [ 40, 0, 30, 0, 9 ]
#After modification
list_a = [ '2019', '2021', '2023' ]
list_b = [ 40, 30, 9 ]知道怎么处理这个问题吗?
发布于 2022-09-30 21:01:20
itertools.compress和过滤器的良好用例
list_a[:] = compress(list_a, list_b)
list_b[:] = filter(None, list_b)发布于 2022-09-30 17:54:15
大概有100种方法可以做到这一点,我相信你会得到不同的回应。如果你有兴趣学这个,你应该试试.
list_a_new、list_b_new,然后使用for循环遍历原始list_b的索引。测试你拿出来的物体。使用条件语句。如果对象不是零,则在相同索引位置从原始列表中获取项,并通过append()将其添加到两个新结果中。enumerate(list_b)获取相同类型的信息,并查看是否可以对这两个新列表进行列表理解。numpy可以这样做,也可以自己做,也许在list_b上再进行一次列表理解,用[False, True, False, True, ...]这样的布尔人制作一个掩码,使用该掩码作为另一个列表理解的基础,以获得new_a和new_b。如果你被困住了,试着修改一下你的帖子!你会提高你的技能。
发布于 2022-09-30 18:36:02
正如其他用户所提到的,有许多方法
list_a2 = [list_a[i] for i in range(len(list_b)) if list_b[i]!=0]
list_b2 = [list_b[i] for i in range(len(list_b)) if list_b[i]!=0]https://stackoverflow.com/questions/73912220
复制相似问题