我的数据集是一个8个数字的文本文件,每个数字格式如下:
76768,766846646,979,3290,5244,69797,8080,3414
7643,73467346,826382,827382,3,826,864,686
这些数字有两个特殊之处:
我应该看到我的数据的方式是x
和y
所以把第一行作为例子x
可以看作76768,979,5244,8080
和y
作为766846646,3290,69797,3414
我要做的是在x
的最高项附近加上y
的最高项,在x
的最小项附近加上y
的最小项,所以我应该得到的第一行的值是76768,766846646,979,3290
代码:
from functools import reduce
text = "76768,766846646,979,3290,5244,69797,8080,3414" # input text
s = text.split(",") # make it into a list of strings
from operator import add
output = list(
reduce(
add,
zip(
sorted(s[::2], reverse=True)[::(len(s)//2)-1],
sorted(s[1::2], reverse=True)[::(len(s)//2)-1]
)
)
)
print (output)
我得到的输出是['979', '766846646', '5244', '3290']
,但我偶尔会得到正确的值与其他例子,但不能理解问题的位置或修复它。