python - 有没有办法从python中另一个数字上方的列表中的每个数字中减去一个数字?

标签 python list loops list-comprehension

我是 python 的新手,所以希望这是一个简单的问题。我有一个包含一堆数字的列表,如果该数字高于某个其他数字,我想从中减去一个。例如,我有以下列表,其中缺少 4 个:

a = [1, 2, 3, 5, 6, 7, 8, 9]

我该怎么做才能将每​​个大于 4 的数字减一?我试过一个 for 循环:

for x in a:
    if x > 4:
        x-=1
print(a)

但这不会改变列表中的任何内容。 我也尝试过列表理解,但我是新手,所以我无法让它工作并出现错误:

a = [[x - 1 if x > 4] for x in a]
a = [[x - 1 for x in a] if x > 4]

我该怎么做才能将 4 以上的每个数字减一并使该列表从一数到八?

最佳答案

你可以试试这个。

a = [1, 2, 3, 5, 6, 7, 8, 9]
[i-1 if i>4 else i for i in a]
# [1, 2, 3, 4, 5, 6, 7, 8]

关于python - 有没有办法从python中另一个数字上方的列表中的每个数字中减去一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60553205/

相关文章:

Python:ValueError: scatter 要求 y 列为数字?

python - 如何确保请求是从轮换 IP 发出的?

python - 在多个 h5 文件上训练 ANN Keras(基于 Tensorflow)模型

python - 在 python 中将两个项目列表相互求和的最快方法

python - 在pandas中,如何收集所有行的数据并将新数据合并为一行?

Python3-Pyqt5如何通过异常或按退出按钮结束线程中的循环

html - thymeleaf 中的for循环

python - 多种语言的名称实体识别 (NER)

python - 从 PyQt 事件循环中执行 Python 代码

c# - 按字母顺序和类型对列表进行排序