Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用if语句对扩展列表执行求和?_Python - Fatal编程技术网

如何在python中使用if语句对扩展列表执行求和?

如何在python中使用if语句对扩展列表执行求和?,python,Python,这就是我想做的: if a > 126: a - 94 “a”是一个很长的列表,大约100个数字都是数字。我想选择126以上的数字,然后从中减去94,但保持顺序不变。有没有办法做到这一点?使用列表理解来构建新列表: a = [v - 94 if v > 126 else v for v in a] 如果v>126为真,条件表达式将为新值生成v-94,否则它将包含未更改的原始值 使用较短的列表进行演示,以保持可读性: >>> impor

这就是我想做的:

     if a > 126:
         a - 94

“a”是一个很长的列表,大约100个数字都是数字。我想选择126以上的数字,然后从中减去94,但保持顺序不变。有没有办法做到这一点?

使用列表理解来构建新列表:

a = [v - 94 if v > 126 else v for v in a]
如果v>126为真,条件表达式将为新值生成v-94,否则它将包含未更改的原始值

使用较短的列表进行演示,以保持可读性:

>>> import random
>>> a = [random.randint(80, 150) for _ in range(10)]
>>> a
[131, 133, 119, 130, 136, 129, 120, 82, 100, 126]
>>> [v - 94 if v > 126 else v for v in a]
[37, 39, 119, 36, 42, 35, 120, 82, 100, 126]
如果要过滤掉126或更低的值,仍然可以使用列表:

[v - 94 for v in a if v > 126]
这将选择126以上的所有值,并生成一个新的列表对象,其中只有这些值减去94。这将生成一个较短的列表:


使用列表理解构建新列表:

a = [v - 94 if v > 126 else v for v in a]
如果v>126为真,条件表达式将为新值生成v-94,否则它将包含未更改的原始值

使用较短的列表进行演示,以保持可读性:

>>> import random
>>> a = [random.randint(80, 150) for _ in range(10)]
>>> a
[131, 133, 119, 130, 136, 129, 120, 82, 100, 126]
>>> [v - 94 if v > 126 else v for v in a]
[37, 39, 119, 36, 42, 35, 120, 82, 100, 126]
如果要过滤掉126或更低的值,仍然可以使用列表:

[v - 94 for v in a if v > 126]
这将选择126以上的所有值,并生成一个新的列表对象,其中只有这些值减去94。这将生成一个较短的列表:


由于列表并不长,您不关心内存消耗,因此我解决此任务的最明显和最可读的方法是在迭代第一个列表的同时创建一个新列表。通过这种方式,您可以确保保持相同的顺序,并且不修改原始列表,如果您希望在

new_list = []
for item in a:
    if item > 126:
        item -= 94
    new_list.append(item)

由于列表并不长,您不关心内存消耗,因此我解决此任务的最明显和最可读的方法是在迭代第一个列表的同时创建一个新列表。通过这种方式,您可以确保保持相同的顺序,并且不修改原始列表,如果您希望在

new_list = []
for item in a:
    if item > 126:
        item -= 94
    new_list.append(item)