簡體   English   中英

Python元組到字典,元組中的元素作為鍵並分配固定值以返回具有最大和最小滾動值總和的鍵

[英]Python tuple to dictionary with elements in tuples as keys and assigning fixed values to return keys with max and min rolling sum of values

我在轉換 python 中的數據集時遇到問題,我認為將它們從元組轉換為鍵並分配一些固定值會幫助我。 舉一個小例子,我有以下輸入數據作為元組數組(不一定要排序):

[(1,3), (2,7), (10, 15)]

我想要的輸出是,對於每個元組的第一個元素,我希望它們分配值 1,而對於每個元組的第二個元素,我希望它們分配值 -1,即我想要的輸出將是一個字典,如下所示:

{1:1, 3:-1, 2:1, 7:-1, 10:1, 15:-1}

然后我想用鍵對這個字典進行排序,並返回帶有最大和最小滾動總和的鍵和值。 我想我應該能夠弄清楚這部分,但是,如上所述,我堅持使用所需的元組到字典的轉換。 有沒有人有任何建議或解決方案?

像這樣的東西?

# initialize variables:
tuple_list = [(1,3), (2,7), (10, 15)]
data = {}

# iterate over each point (tuple) in tuple_list:
for point in tuple_list:

    data[point[0]] = 1
    data[point[1]] = -1

print(data)

Itertools 將完成這樣的工作。 您可以使用cycle()循環遍歷(1, -1) cycle()並使用chain()壓平原件。 然后將它們壓縮在一起:

from itertools import chain, cycle

l = [(1,3), (2,7), (10, 15)]

dict(zip(chain(*l), cycle([1, -1])))

# {1: 1, 3: -1, 2: 1, 7: -1, 10: 1, 15: -1}

這也可以:

d={}
lst = [(1,3), (2,7), (10, 15)]

for x in lst: d={**d,x[0]:1,x[1]:-1}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM