gpt4 book ai didi

python - 列表推导 if condition else 替换

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:41 25 4
gpt4 key购买 nike

我正在尝试用高度值格式化列表,但有些元素不是值

hei=['NN', '99.0m', '99.0m', '99.0m', '99.0m', '97.0m', '97.0m', '97.0m','rat_v2']

所以我想用 rstrip 删除 'm' 并替换 '_' 的非数值

这是我的尝试

heiFormat=[k.rstrip('m') if k[0].isdigit else k.replace(k,'_') for k in hei]

但结果并不完全正确,好像没有替换非数字

heiFormat=['NN', '99.0', '99.0', '99.0', '99.0', '97.0', '97.0', '97.0','rat_v2']

虽然我想要类似的东西

heiFormat=['_', '99.0', '99.0', '99.0', '99.0', '97.0', '97.0', '97.0','_']

有什么问题或缺失?

最佳答案

当你做 - k[0].isdigit - 您只是访问该函数,而不是调用它,这就是该条件对所有值的计算结果为真的原因。

你应该调用它。而且你也不需要 replace ,更简单的方法是直接输入 '_'k.replace(k,'<something>')和直接用'<something>'是一样的.

例子-

>>> 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', '_']

关于python - 列表推导 if condition else 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com