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

我正在阅读一个看起来像这样的 txt 文件:


2

3

72 17

44 23

31 24

1

26

阅读并剥离换行符后,我得到了这个:


['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


缥缈止盈
浏览 173回答 3
3回答

白猪掌柜的

您需要调用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)

斯蒂芬大帝

您想将字符串(文本)转换为整数。你可以用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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python