首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表中值的Python -subtraction

列表中值的Python -subtraction
EN

Stack Overflow用户
提问于 2012-04-06 19:31:51
回答 5查看 1.1K关注 0票数 6

我是Python的新手,在处理列表时遇到了困难。我希望从列表中除值10.5之外的所有值中减去1。下面的代码给出了x3列表分配索引超出范围的错误。到目前为止的代码:

代码语言:javascript
复制
x2=[10.5, -6.36, 11.56, 19.06, -4.37, 26.56, 9.38, -33.12, -8.44, 0.31, -13.44, - 6.25, -13.44, -0.94, -0.94, 19.06, 0.31, -5.94, -13.75, -23.44, -51.68, 10.5]
x3=[]
i=0
while (i<22):
 if x2[i]==10.5:
    x3[i]=x2[i]
else:
    x3[i]=x2[i]-1
break
#The result I want to achieve is:
#x3=[10.5, -7.36, 10.56, 18.06, -5.37, 25.56, 8.38, -34.12, -9.44, -1.31, -14.44, -7.25, -14.44, -1.94, -1.94, 18.06, -1.31, -6.94, -14.75, -24.44, -52.68, 10.5]
EN

回答 5

Stack Overflow用户

发布于 2012-04-06 19:37:15

尝试以下操作:

代码语言:javascript
复制
x3 = [((x - 1) if x != 10.5 else x) for x in x2]
票数 7
EN

Stack Overflow用户

发布于 2012-04-06 19:38:46

代码语言:javascript
复制
x2 = [10.5, -6.36, 11.56, 19.06, -4.37, 26.56, 9.38, -33.12, -8.44, 0.31, -13.44, - 6.25, -13.44, -0.94, -0.94, 19.06, 0.31, -5.94, -13.75, -23.44, -51.68, 10.5]
x3 = map(lambda x: x if x == 10.5 else x - 1, x2)

Python很优雅。

票数 3
EN

Stack Overflow用户

发布于 2012-04-06 19:36:19

代码语言:javascript
复制
x2=[10.5, -6.36, 11.56, 19.06, -4.37, 26.56, 9.38, -33.12, -8.44, 0.31, -13.44, - 6.25, -13.44, -0.94, -0.94, 19.06, 0.31, -5.94, -13.75, -23.44, -51.68, 10.5]
x3=[]
for value in x2:
    if value != 10.5:
        value -= 1
    x3.append(value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10042851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档