如果满足条件,则修改列表元素的Pythonic方法

jul*_*jul 1 python list python-3.x python-3.4

我有这样的事情:

myListOfLists = [["descrA",True,3],["descrB",True,5],["descrB",True,65],..]
Run Code Online (Sandbox Code Playgroud)

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

myListOfLists 应成为:

[["descrA",False,3],["descrB",False,5],["descrB",True,65],..]
Run Code Online (Sandbox Code Playgroud)

python中最好的方法是什么?

Fer*_*dox 6

可能有很多方法可以做到这一点,具体取决于你对"python中的最佳方法"的意思.这是其中之一:

for i in myListOfLists:
    if i[2] <= 30:
        i[1] = False
Run Code Online (Sandbox Code Playgroud)

由于"最佳"可能意味着:快速,高效,可读等,您可以检查哪种方法适合您的需求.

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


什么"最好"不应该意味着," 不必要的复杂 ".

  • @jul'最好'是什么意思?可读,更快,内存效率更高? (2认同)
  • @jul:这是"Pythonic"的一个非常奇怪的定义,因为Python是一种着名的_人类可读的新行和缩进语言. (2认同)