首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列表理解替换if条件else

列表理解替换if条件else
EN

Stack Overflow用户
提问于 2015-09-08 20:03:03
回答 1查看 1.4K关注 0票数 1

我正在尝试使用高度值设置列表的格式,但其中一些元素不是值

代码语言:javascript
运行
复制
hei=['NN', '99.0m', '99.0m', '99.0m', '99.0m', '97.0m', '97.0m', '97.0m','rat_v2']

所以我想用rstrip删除'm‘,并用'_’替换非数字值

这是我的尝试

代码语言:javascript
运行
复制
heiFormat=[k.rstrip('m') if k[0].isdigit else k.replace(k,'_') for k in hei]

但结果并不是完全正确的,因为似乎不能替换非数字

代码语言:javascript
运行
复制
heiFormat=['NN', '99.0', '99.0', '99.0', '99.0', '97.0', '97.0', '97.0','rat_v2']

而我想要像这样的东西

代码语言:javascript
运行
复制
heiFormat=['_', '99.0', '99.0', '99.0', '99.0', '97.0', '97.0', '97.0','_']

哪里出了问题或遗漏了什么?

EN

Stack Overflow用户

发布于 2015-09-08 20:06:22

当你这样做的时候- k[0].isdigit -你只是在访问函数,而不是调用它,这就是为什么对于所有的值,该条件的计算结果都是真的。

你应该叫它。而且你也不需要replace,一个更简单的方法是直接把'_'放在那里,因为k.replace(k,'<something>')和直接使用'<something>'是一样的。

示例:

代码语言:javascript
运行
复制
>>> heiFormat=[k.rstrip('m') if k[0].isdigit() else '_' for k in hei]
>>> heiFormat
['_', '99.0', '99.0', '99.0', '99.0', '97.0', '97.0', '97.0', '_']
票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32457352

复制
相关文章

相似问题

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