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

新手上路,请多包涵

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

如果条目是“X”,我尝试使用 if 语句来替换条目,但这只是给了我一个类型错误。

例子:改变

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

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

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

原文由 Hidden 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 403
1 个回答

尝试使用 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]

原文由 McGrady 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题