条件为m时修改列表元素的python方法

2024-10-03 02:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的东西:

myListOfLists = [["descrA",True,3],["descrB",True,5],["descrB",True,65],..]

对于列表中的每个元素,我需要将myListOfLists[element][1]设置为False if myListOfLists[element][2] <= 30。在

myListOfLists应该变成:

^{pr2}$

python中实现这一点的最佳方法是什么?在


Tags: 方法falsetrue元素列表ifelementpr2
3条回答

python所说的“最好的方法可能有很多种”。这是其中之一:

for i in myListOfLists:
    if i[2] <= 30:
        i[1] = False

因为“最好”可能意味着:快速,内存效率,可读性等等,你可以检查哪种方法适合你的需要。在

例如,要检查速度,可以使用timeit并比较各种解决方案。在


“最好”不是指“unnecessarily complex”。在

也许这是最好的解释方式:

[(elem, False, num) if num <= 30 else (elem, cond, num) for (elem, cond, num) in myListOfLists]
[(elem, cond and (num > 30), num) for (elem, cond, num) in myListOfLists]

对@Mikhail答案紧性的改进

相关问题 更多 >