假设有大约200组预设。 每组有X个“项目”附加到它。一个组可以有一个项目,也可以有100个项目。 组通常有共享名称的项,例如。 组\u 0040可以有项目\u abcde、项目\u bcda、项目\u bcba,组\u 0120可以有共同的项目\u abcd,但其他10个项目不能与组\u 0040共享
什么是最有效的整理X组列表的方法?这些组有最多的共同点? 我认为理想情况下,最终有用的数据是:
例如,最常见的可能是:
[{'groups': [<Group_0040>, <Group_0041>, <Group_0022, <Group_0076>, <Group_0054>, <Group_0192>, <Group_0017>],
'items': [<Item_acdb>, <Item_ddbc>, <Item_dddb>, <Item_cbcb>, <Item_acba>, <Item_aaba>]
}
....
]
收集这些数据也会有截止值——即,必须有X个共同的组数,并且必须有X个共同的项数,才能考虑它们。 即:
getSharedItemGroups(minGroups=4,minItems=5)
示例:
class Group(object):
def __init__(self, name):
self.name = name
self.items = []
def addItem(self, item):
self.items.append(item)
class Item(object):
def __init__(self, name):
self.name = name
import random
import string
groups = []
for x in range(200):
groups.append(Group('Group_{0:04d}'.format(x)))
letters = string.lowercase
for group in groups:
for i in range(random.randint(0,50)):
tag = ''
for c in range(4):
tag += letters[random.randint(4)]
group.addItem(Item('item_' + tag)
目前没有回答
相关问题 更多 >
编程相关推荐