python用整数替换列表中的字符串

标签 python python-2.7 python-3.x

我有一个列表,其索引主要是整数,但偶尔会有一些“X”条目。 我需要所有条目来使用此列表和另一个列表执行列表操作。如何用整数零替换作为字符串的“X”条目,同时保持列表长度相同。

我曾尝试使用 if 语句来替换为“X”的条目,但这只会给我一个类型错误。

例子:改变

['X', 'X', 52, 39, 81, 12, 'X', 62, 94]

[0, 0, 52, 39, 81, 12, 0, 62, 94]

其中第二个列表中的所有条目都是 int。

最佳答案

尝试使用 map 来做到这一点:

>>> l= ['X','X',52,39,81,12,'X',62,94]
>>>
>>> map(lambda x:0 if x=="X" else x,l)
[0, 0, 52, 39, 81, 12, 0, 62, 94]

如果您使用的是 Python3.x,map() 返回迭代器,因此您需要使用 list(map()) 将其转换为列表。

或者使用列表理解:

>>> [i if i!='X' else 0 for i in l]
[0, 0, 52, 39, 81, 12, 0, 62, 94]

关于python用整数替换列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081148/

相关文章:

python - 如何在Ubuntu启动时自动启动该服务?

python - 用ast重写代码; Python

python - 'pygame.event.get()' 的更快版本。为什么事件会被错过以及为什么事件会被延迟?

python - Python列表支持 float 吗?什么时候需要整数而浮点却不能?

python - Pandas:根据 json 对象替换 DataFrame 中的列值

python - 无法使用 vscode 导入 django 项目中的应用程序

python - 从旧字典键生成新字典键

python - Python 中的伪指针功能

python-2.7 - 为 sslv3 问题修补 pyopenssl

python - Xpath scrapy 结果不符合预期