use*_*628 -2 python string integer list map-function
我有一个看起来像这样的列表
['111', '222', '333', 'xxx', '3233']
如果可能的话,我想将所有元素更改为int。在本例中,xxx不是数字。那么我怎样才能忽略'xxx'并将所有其他元素更改为int?
我可以使用 for 循环和一些 if 语句来完成此操作。但如果可能的话,我更喜欢使用map函数。任何其他方便的方式将不胜感激。
为什么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)
| 归档时间: |
|
| 查看次数: |
1480 次 |
| 最近记录: |