从一个带有特定标准的表中得到的组合

2024-06-02 22:55:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表,其中Day作为列标题,temperature作为行。表中列出了一天中最低温度出现的次数。在下表中,周一最低气温为1度4次,周二最低气温为1度0次,周三最低气温为1度3次,以此类推

     **Mon**       **Tue**      **Wed**     
1      4              0            3
2      0              1            0
3      1              4            2
4      2              0            1
5      0              1            3    
6      7              3            2
7      0              0            1
8      2              1            4

我想生成所有可能的温度和温度的组合 表示等间距值的天数,例如(a-b) = 3(b-c) = 0

星期一,最低温度1度=4度 星期二,最低温度为2度=1 差值=3

星期二,最低温度为2度=1 星期三,最低温度4度=1 差值=0

作为行标签的输出值:(1,2,4)(1,2,7)(6,3,8)

我应该如何在整个表中获得类似的等距值组合


Tags: 标题标签温度次数temperature间距daymon
1条回答
网友
1楼 · 发布于 2024-06-02 22:55:39

不确定我是否清楚地理解了这个要求。但是检查一下这是否是你需要的:

>>> from itertools import product
>>> temperatures = [
    [4,0,3],
    [0,1,0],
    [1,4,2],
    [2,0,1],
    [0,1,3],
    [7,3,2],
    [0,0,1],
    [2,1,4]
]
>>> monday_values,tuesday_values,wednesday_values = zip(*temperatures)
>>> result = []
>>> for i,j,k in product(range(len(monday_values)), range(len(tuesday_values)), range(len(wednesday_values))):
        # remove same day values
        if i==j or j==k or k==i:
            continue
        if (monday_values[i]-tuesday_values[j]==3) and (tuesday_values[j]-wednesday_values[k]==0):
            result.append((i+1,j+1,k+1))


>>> result
[(1, 2, 4), (1, 2, 7), (1, 5, 4), (1, 5, 7), (1, 8, 4), (1, 8, 7), (6, 3, 8)]

相关问题 更多 >