如何使用Python map函数处理二维数组每一行实现数据类型转换
原生Python map()函数实现二维数组逐行处理的方法
实现逻辑
针对将每行第一个字符串类型的数字转为整数、其余元素保留原值的需求,嵌套调用map()即可实现,不需要引入numpy依赖。
代码示例
固定列数的场景(每行2个元素)
# 输入示例 input_arr = [['1', 'apple'], ['2', 'banana']] # 核心处理逻辑 result = list(map(lambda row: [int(row[0]), row[1]], input_arr)) print(result) # 输出:[[1, 'apple'], [2, 'banana']]
通用列数的场景(仅首元素转整数,其余元素自动保留)
如果后续行的元素数量可能变化,可使用切片写法兼容:
result = list(map(lambda row: [int(row[0])] + row[1:], input_arr))
全元素规则匹配场景
如果需要对每行所有符合规则的元素做转换(比如所有可转整数的元素都转类型),可以嵌套内层map()处理逐元素逻辑:
def convert_item(item): try: return int(item) except ValueError: return item result = list(map(lambda row: list(map(convert_item, row)), input_arr))
注意事项
Python 3中map()函数返回的是迭代器对象,需要手动用list()转成列表格式才能得到最终的数组结果。
内容的提问来源于stack exchange,提问作者sunset
相关产品推荐
相关产品推荐

