l = open(filename)
string = l.read()
subsetA, subsetB = string[:len(string)//2], string[len(string)//2:]
print(subsetA)
print(subsetB)
它继续打印:
9 17 4 8
11 18 13
我期待得到:
9 17 4
8 11 18 13
文本文件:
9 17 4 8 11 18 13
有任何帮助吗?谢谢!我仍然不明白为什么我这个部分做错了:
subsetA, subsetB = string[:len(string)//2], string[len(string)//2:]
答案 0 :(得分:1)
您将长度为18的字符串拆分为两个:
>>> text = '9 17 4 8 11 18 13\n'
>>> len(text) // 2
9
>>> text[:9]
'9 17 4 8 '
>>> text[9:]
'11 18 13\n'
所以该师使完美感。
即使最后没有换行符,使其长度为17,仍然有效:
>>> text = '9 17 4 8 11 18 13'
>>> len(text)
17
>>> len(text) // 2
8
>>> text[:8]
'9 17 4 8'
>>> text[8:]
' 11 18 13'
你没有根据这里的数字组数将字符串分成两半,而是纯粹按字符串数字分割。
如果您想这样做,请首先拆分该行:
>>> parts = text.split()
>>> parts
['9', '17', '4', '8', '11', '18', '13']
>>> parts[:len(parts)//2]
['9', '17', '4']
>>> parts[len(parts)//2:]
['8', '11', '18', '13']