gpt4 book ai didi

python创建带有变量赋值且不重复的列表理解

转载 作者:行者123 更新时间:2023-12-01 02:11:31 26 4
gpt4 key购买 nike

我正在循环脚本中的一个函数,该函数返回列表列表,例如在第一次迭代中我得到以下列表列表:

list1 = [['Farm05', 'Red Hat Enterprise Linux, Standard', 1], ['Farm05', 'Red Hat Enterprise Linux, Standard', 1], ['Farm05', 'Red Hat Enterprise Linux, Standard', 1], ['Farm05', 'Red Hat Enterprise Linux, Premium', 1], ['Farm05', 'Red Hat nterprise Linux,Premium', 1]]

我想要得到的是一个包含不同项目的列表,以及每个订阅的数字摘要,即标准列表 = 1+1 =2,高级列表 1+1=2

list2 = ['Farm05','Red Hat Enterprise Linux, Standard',2]
list3 = ['Farm05','Red Hat Enterprise Linux, Premium',2]

我尝试过这种方法,但它没有删除重复项,而且看起来不干净。如何通过列表理解来实现它?

new_list = []
for i in Farm:
farm = i[0]
subscription = i[1]
count = i[2]
count += count
if farm not in list1 or subscription not in list1 or count not in list1:
new_list.extend(farm,subscription,count)

最佳答案

您需要的是groupby from itertools 。以下是如何使用它:

from itertools import groupby    

res = [[*i, sum(k[-1] for k in g)] for i, g in groupby(list1, key=lambda x: x[:-1])]

对于您提供的示例输入1打印:

[['Farm05', 'Red Hat Enterprise Linux, Standard', 3], ['Farm05', 'Red Hat Enterprise Linux, Premium', 2]]
<小时/>

1必须更正输入;它包含拼写错误。

关于python创建带有变量赋值且不重复的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48660878/

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