gpt4 book ai didi

python - 将生成的组合中的项目从一个列表重新定义为另一个列表的术语,该列表的项目在位置上链接

转载 作者:太空狗 更新时间:2023-10-30 02:24:32 26 4
gpt4 key购买 nike

列表stuff中的值列表是键或者对应于列表words中的单词。

stuff = [10170028,1,51,5,2,2,14,1,10,2,5,1,1]
words =['AGGGG','AUDIT + PARK','AUDIT + PENDING','AUDIT + QUOTE_CREATED'',AUDIT + QUOTE_DELETED',
'AUDIT + QUOTE_REJECTED','AUDIT + QUOTE_UPDATED','AUDIT + RFQ_DELETED',
'LIVE','PENDING','QUOTE_CREATED','REJECT','RFQ_DELETED']

stuff 中的所有项目都按位置唯一链接到 words 中的项目,例如 1index 1 链接到 AUDIT + PARK1index 7 链接到 LIVE

然后我使用 itertools 来获取每个等于特定总和的唯一列表:

new = []
for L in range(0, len(stuff)+1):
for subset in itertools.combinations(stuff, L):
if sum(subset) == 10170090:
new.append(subset)
for x in new:
print(x)

我的列表由组合组成

[(10170028, 1, 51, 10), (10170028, 51, 1, 10),...(10170028, 1, 51, 2, 1, 5, 1, 1), (10170028, 1, 51, 1, 2, 5, 1, 1)]  

我需要将这些子列表中的每个项目转换为它们在 words 中链接到的项目

最佳答案

在生成组合时,您可以在列表中包含数字的索引,以便您知道稍后(在特定索引处)它是哪个数字(因为您可以有重复项):

for L in range(0, len(stuff) + 1):
# generate combinations of (index, number) tuples
for subset in itertools.combinations(list(enumerate(stuff)), L):
if sum(x for i, x in subset) == 10170090:
new.append(subset) # subset has index information

现在我们可以得到那个数字对应的单词了。所以现在这个

for combo in new:
print(combo)
print([words[i] for i, x in combo]) # get word corresponding to index

打印:

((0, 10170028), (1, 1), (2, 51), (8, 10))                                                                                             
['AGGGG', 'AUDIT + PARK', 'AUDIT + PENDING', 'PENDING']
((0, 10170028), (2, 51), (7, 1), (8, 10))
['AGGGG', 'AUDIT + PENDING', 'LIVE', 'PENDING']
((0, 10170028), (2, 51), (8, 10), (11, 1))
['AGGGG', 'AUDIT + PENDING', 'PENDING', 'RFQ_DELETED']
...

关于python - 将生成的组合中的项目从一个列表重新定义为另一个列表的术语,该列表的项目在位置上链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52786871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com