gpt4 book ai didi

python - 如何找到这个元组中不同类别的最大数量?

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:35 24 4
gpt4 key购买 nike

我得到一些这样的数据

A=['A,1','A,2','A,4','A,5','B,2','B,3','B,4','B,5','C,2','C,20','C,200','C,2']    

我想要一个这样的结果,这意味着名称,最小数量,最大数量。我有 100 万个这样的数据。

'A,1,5','B,2,5','C,2,200'

我尝试过这样的方式:

A=['A,1','A,2','A,4','A,5','B,2','B,3','B,4','B,5','C,2','C,20','C,200','C,2']
B=[]
C=[]
for r in A:
B.append(r.split(',')[0])
B_set=list(set(B))
catagory_number=range(0,len(B_set),1)
for j in catagory_number:
numbers = []
for r in A:
if B_set[j]==r.split(',')[0]:
numbers.append(r.split(',')[1])
print numbers

如您所见,它不起作用,我在收集数据时遇到问题。

['1']
['1', '2']
['1', '2', '4']
['1', '2', '4', '5']
['2']
['2', '20']
['2', '20', '200']
['2', '20', '200', '2']
['2']
['2', '3']
['2', '3', '4']
['2', '3', '4', '5']

有什么建议吗?

最佳答案

您可以迭代您的列表并使用OrderedDict导出最小值和最大值。最后,您可以重新创建字符串,如我所示,但实际上您最好保留字典数据结构(取决于您下一步想要做什么):

import collections

def sol(lst):
d = collections.OrderedDict()
for item in lst:
key, value = item.split(',')
value = int(value)
if key in d:
if value < d[key][0]:
d[key][0] = value
elif value > d[key][0]:
d[key][1] = value
else:
d[key] = [value, value] # key = letter; value = [min, max]
return ['{},{},{}'.format(key,*values) for key,values in d.items()] # in Python 2 use key,value[0],value[1]

示例:

my_lst = ['A,1','A,2','A,4','A,5','B,2','B,3','B,4','B,5','C,2','C,20','C,200','C,2']
print(sol(my_lst))
# ['A,1,5', 'B,2,5', 'C,2,200']

关于python - 如何找到这个元组中不同类别的最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635877/

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