我正在阅读一个看起来像这样的 txt 文件:2372 1744 2331 24126阅读并剥离换行符后,我得到了这个:['2', '3', '72 17', '44 23', '31 24', '1', '26']这很好,但是当我想将此数组传递给我的函数时,它要么抛出错误,要么无法正确取出值。我想知道如何像这样读取我的文件:[2, 3, 72 17, 44 23, 31 24, 1, 26]如果我不能这样做(可能是因为没有逗号的双数?),那么除了只是说之外,还有其他方法可以将它传递给我的函数def functionA(nums):吗?with open("shoppingTest.txt") as f: nums = f.readlines()nums = [x.strip() for x in nums]print nums
3 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
您需要调用int()将字符串转换为整数。如果该行包含多个数字,则必须先拆分它,然后再调用int()这些子字符串。
result = []
for x in nums:
x = x.strip()
if " " in x:
result.append(map(int, x.split(" ")))
else:
result.append(int(x))
print(result)
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
您想将字符串(文本)转换为整数。你可以用int(x).
您还可以split再次使用和一些列表推导式来处理双打:
orig = ['2', '3', '72 17', '44 23', '31 24', '1', '26']
resplit = [x.split() for x in orig]
flat = [item for sublist in resplit for item in sublist]
as_ints = [int(x) for x in a]
as_ints
> [2, 3, 72, 17, 44, 23, 31, 24, 1, 26]
添加回答
举报
0/150
提交
取消