为了账号安全,请及时绑定邮箱和手机立即绑定

从文件读取后如何修复数组中元素周围的“ ”

从文件读取后如何修复数组中元素周围的“ ”

缥缈止盈 2021-10-19 14:47:41
我正在阅读一个看起来像这样的 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)


查看完整回答
反对 回复 2021-10-19
?
斯蒂芬大帝

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]


查看完整回答
反对 回复 2021-10-19
  • 3 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信