如果可能的话,Python如何在列表元素上应用map函数?

use*_*628 -2 python string integer list map-function

我有一个看起来像这样的列表

['111', '222', '333', 'xxx', '3233']

如果可能的话,我想将所有元素更改为int。在本例中,xxx不是数字。那么我怎样才能忽略'xxx'并将所有其他元素更改为int

我可以使用 for 循环和一些 if 语句来完成此操作。但如果可能的话,我更喜欢使用map函数。任何其他方便的方式将不胜感激。

Sel*_*cuk 8

为什么map?列表理解更具可读性,并且您不能从 a 中排除项目map(不使用filter或其他生成器表达式):

>>> mylist = ['111', '222', '333', 'xxx', '3233']
>>> [int(x) for x in mylist if x.isdigit()]
[111, 222, 333, 3233]
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于作为-.不是数字的正整数。

您的问题( ignorexxx )中的措辞有点模糊。如果你想将它保留为字符串,你应该使用这个:

>>> [int(x) if x.isdigit() else x for x in mylist]
[111, 222, 333, 'xxx', 3233]
Run Code Online (Sandbox Code Playgroud)