如何正确地置换数字?

问题描述 投票:0回答:1

我的数据集是一个8个数字的文本文件,每个数字格式如下:

   76768,766846646,979,3290,5244,69797,8080,3414
   7643,73467346,826382,827382,3,826,864,686

这些数字有两个特殊之处:

  1. 每行有8个用逗号分隔的数字
  2. 它们都是积极的价值观。

我应该看到我的数据的方式是xy

  • x是从第一个开始的每个其他值
  • y是从每行的第二项开始的每隔一个值。

所以把第一行作为例子x可以看作76768,979,5244,8080y作为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'],但我偶尔会得到正确的值与其他例子,但不能理解问题的位置或修复它。

python-3.x list
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.