如何用split()拆分含数字的字符串?解决int类型无to_string属性报错
解决方法
你的问题核心是列表product_amount里混合了整数和字符串类型:纯数字元素被自动转成了int,而整数既没有to_string()方法(Python里转字符串用str()),也没有split()方法,所以不管加不加to_string()都会报错。而文本元素本身就是字符串,自然能正常调用split()。
给你两个可行的解决思路:
1. 处理现有列表:统一转字符串再拆分
直接在拆分前把元素转成字符串,不管它原本是int还是str:
single_amount_product = product_amount[i] # 用str()转成字符串后再拆分 amount_products = str(single_amount_product).split('#')
这样不管元素是1还是"1#1",都会先变成字符串再按#拆分,结果分别是['1']和['1', '1'],符合你的需求。
2. 从根源避免:生成列表时统一存为字符串
如果product_amount是你自己生成或者读取的,建议在创建列表时就把所有元素都存成字符串类型,比如从文件读取时:
# 示例:从文本行读取时强制转字符串 product_amount = [] with open('your_file.txt', 'r') as f: for line in f: # 去掉换行符后转成字符串 product_amount.append(str(line.strip()))
这样后续直接调用split()就不会有类型问题了。
内容的提问来源于stack exchange,提问作者Mateusz Mazurek
相关产品推荐
相关产品推荐

