| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import random
- def generate_combinations(xp_category_list, xp_rarity_list, xp_quality_list, xp_exterior_list, xp_itemset_list):
- # 过滤掉空的列表
- non_empty_lists = {
- 'category': xp_category_list,
- 'rarity': xp_rarity_list,
- 'quality': xp_quality_list,
- 'exterior': xp_exterior_list,
- 'itemset': xp_itemset_list
- }
-
- # 只保留非空的列表
- filtered_lists = {k: v for k, v in non_empty_lists.items() if v}
-
- # 如果所有列表都为空,返回空列表
- if not filtered_lists:
- return []
-
- # # 生成所有可能的组合
- # combinations = []
- # for category in filtered_lists.get('category', [None]):
- # for rarity in filtered_lists.get('rarity', [None]):
- # for quality in filtered_lists.get('quality', [None]):
- # for exterior in filtered_lists.get('exterior', [None]):
- # for itemset in filtered_lists.get('itemset', [None]):
- # combination = {
- # 'category': category,
- # 'rarity': rarity,
- # 'quality': quality,
- # 'exterior': exterior,
- # 'itemset': itemset
- # }
- # # 过滤掉所有值都为None的组合
- # if any(value is not None for value in combination.values()):
- # combinations.append(combination)
- #
- # return combinations
- # 生成所有可能的组合
- combinations = []
- # 使用itertools.product来生成所有可能的组合
- from itertools import product
- # 获取所有非空列表的值
- values = list(filtered_lists.values())
- # 获取所有非空列表的键
- keys = list(filtered_lists.keys())
- for combination in product(*values):
- combination_dict = {keys[i]: combination[i] for i in range(len(keys))}
- combinations.append(combination_dict)
- return combinations
- # 示例调用
- xp_category_list = [ ]
- xp_rarity_list = [ ]
- xp_quality_list = []
- xp_exterior_list = []
- xp_itemset_list = []
- combinations = generate_combinations(xp_category_list, xp_rarity_list, xp_quality_list, xp_exterior_list, xp_itemset_list)
- print("所有可能的组合:", combinations)
- for combo in combinations:
- print(combo)
|