gpt4 book ai didi

python - 如何为 Python 中的字符串列表自定义 map()?

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:29 24 4
gpt4 key购买 nike

如何告诉 map() 有选择地将列表中的部分字符串(而不是所有字符串)转换为整数值?

输入文件(制表符分隔):

abc1    34    56
abc1 78 90

我的尝试:

import csv

with open('file.txt') as f:
start = csv.reader(f, delimiter='\t')
for row in start:
X = map(int, row)
print X

错误信息:ValueError: invalid literal for int() with base 10: 'abc1'

当我用 csv 模块读入文件时,它是一个字符串列表:

['abc1', '34', '56']
['abc1', '78', '90']

map() 显然不喜欢 'abc1',尽管它是一个字符串,就像 '34' 是一个字符串一样。

我彻底检查了Convert string to integer using map()但它没有帮助我处理输入文件的第一列。

最佳答案

def safeint(val):
try:
return int(val)
except ValueError:
return val

for row in start:
X = map(safeint, row)
print X

是一种方法……你可以更进一步

from functools import partial
myMapper = partial(map,safeint)
map(myMapper,start)

关于python - 如何为 Python 中的字符串列表自定义 map()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25321274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com