如何从列表中的几个元素中减去数字?

2024-04-18 23:37:54 发布

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

我有一个包含几个元素的列表,我只想从列表的前3个元素中减去1。我不知道什么是正确的代码来完成这个任务。如果有人能帮助我,我将不胜感激。谢谢您!你知道吗

thelist = [5,4,3,2,1]

我想让它变成

[4,3,2,2,1]

Tags: 代码元素列表thelist
3条回答

您可以使用列表理解来修改原始列表,如下所示:

n = 3  # Number of first elements to modify.
modification_amount = -1  
thelist[:n] = [val + modification_amount for val in thelist[:n]]
>>> thelist
[4, 3, 2, 2, 1]

一种可能的解决方案:

thelist = [5,4,3,2,1]

thelist = [v - 1 if i < 3 else v for i, v in enumerate(thelist)]

print(thelist)

印刷品:

[4, 3, 2, 2, 1]

或:

print(list(map(lambda k: k-1, thelist[:3])) + thelist[3:])

或:

print([v - (i<3) for i, v in enumerate(thelist)])
In [95]: thelist = [5,4,3,2,1]                                                                                                                                                                                                                                                                                                

In [96]: [i-1 for i in thelist[:3]] + thelist[3:]                                                                                                                                                                                                                                                                             
Out[96]: [4, 3, 2, 2, 1]

相关问题 更多 >