tempfile_1738931293223.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import random
  2. def generate_combinations(xp_category_list, xp_rarity_list, xp_quality_list, xp_exterior_list, xp_itemset_list):
  3. # 过滤掉空的列表
  4. non_empty_lists = {
  5. 'category': xp_category_list,
  6. 'rarity': xp_rarity_list,
  7. 'quality': xp_quality_list,
  8. 'exterior': xp_exterior_list,
  9. 'itemset': xp_itemset_list
  10. }
  11. # 只保留非空的列表
  12. filtered_lists = {k: v for k, v in non_empty_lists.items() if v}
  13. # 如果所有列表都为空,返回空列表
  14. if not filtered_lists:
  15. return []
  16. # # 生成所有可能的组合
  17. # combinations = []
  18. # for category in filtered_lists.get('category', [None]):
  19. # for rarity in filtered_lists.get('rarity', [None]):
  20. # for quality in filtered_lists.get('quality', [None]):
  21. # for exterior in filtered_lists.get('exterior', [None]):
  22. # for itemset in filtered_lists.get('itemset', [None]):
  23. # combination = {
  24. # 'category': category,
  25. # 'rarity': rarity,
  26. # 'quality': quality,
  27. # 'exterior': exterior,
  28. # 'itemset': itemset
  29. # }
  30. # # 过滤掉所有值都为None的组合
  31. # if any(value is not None for value in combination.values()):
  32. # combinations.append(combination)
  33. #
  34. # return combinations
  35. # 生成所有可能的组合
  36. combinations = []
  37. # 使用itertools.product来生成所有可能的组合
  38. from itertools import product
  39. # 获取所有非空列表的值
  40. values = list(filtered_lists.values())
  41. # 获取所有非空列表的键
  42. keys = list(filtered_lists.keys())
  43. for combination in product(*values):
  44. combination_dict = {keys[i]: combination[i] for i in range(len(keys))}
  45. combinations.append(combination_dict)
  46. return combinations
  47. # 示例调用
  48. xp_category_list = [ ]
  49. xp_rarity_list = [ ]
  50. xp_quality_list = []
  51. xp_exterior_list = []
  52. xp_itemset_list = []
  53. combinations = generate_combinations(xp_category_list, xp_rarity_list, xp_quality_list, xp_exterior_list, xp_itemset_list)
  54. print("所有可能的组合:", combinations)
  55. for combo in combinations:
  56. print(combo)