满足条件时修改列表元素的Pythonic方法
我有这样的想法:满足条件时修改列表元素的Pythonic方法,python,list,python-3.x,python-3.4,Python,List,Python 3.x,Python 3.4,我有这样的想法: myListOfLists = [["descrA",True,3],["descrB",True,5],["descrB",True,65],..] 对于列表中的每个元素,如果myListOfLists[element][2]有很多方法可以实现,那么我需要将myListOfLists[element][1]设置为False,这取决于python中最佳方法的含义。这是其中之一: for i in myListOfLists: if i[2] <= 30:
myListOfLists = [["descrA",True,3],["descrB",True,5],["descrB",True,65],..]
对于列表中的每个元素,如果myListOfLists[element][2]有很多方法可以实现,那么我需要将myListOfLists[element][1]设置为False,这取决于python中最佳方法的含义。这是其中之一:
for i in myListOfLists:
if i[2] <= 30:
i[1] = False
因为best可能意味着:快速、高效、可读等,所以您可以检查哪种方法适合您的需要
例如,为了检查速度,您可以使用和比较各种解决方案
最好不应该是什么意思,是什么 可能有很多方法可以做到这一点,这取决于python中最佳方法的含义。这是其中之一:
for i in myListOfLists:
if i[2] <= 30:
i[1] = False
因为best可能意味着:快速、高效、可读等,所以您可以检查哪种方法适合您的需要
例如,为了检查速度,您可以使用和比较各种解决方案
最好不应该是什么意思,是什么 也许这是最好的简谐方式:
[(elem, False, num) if num <= 30 else (elem, cond, num) for (elem, cond, num) in myListOfLists]
也许这是最好的简谐方式:
[(elem, False, num) if num <= 30 else (elem, cond, num) for (elem, cond, num) in myListOfLists]
关于@Mikhail答案紧性的改进
改进@Mikhail答案的简洁性当然,谢谢,但我非常确定有一种最好的python方法可以做到这一点。有什么想法吗?@jul“best”是什么意思?可读性、速度更快、内存效率高?也就是说,是否可以在一行中使用它?@jul:这是Pythonic的一个非常奇怪的定义,因为Python是一种臭名昭著地需要人类可读的换行符和缩进的语言。@jul:你可能喜欢阅读这个元问题&a当然,谢谢,但我很确定有一个最好的蟒蛇式方法可以做到。有什么想法吗?@jul“best”是什么意思?可读性、速度更快、内存效率高?也就是说,是否有可能将其放在一行中?@jul:这是Pythonic的一个非常奇怪的定义,因为Python是一种臭名昭著地需要人类可读的换行符和缩进的语言。@jul:你可能喜欢阅读这个元问答