def CartesianProduct(list_entry):
# Save Sizes of Everything
size_dictionary = {}
# Get Size of Entire Entry List
size_dictionary["full_size"] = len(list_entry)
# Get Sizes of All Sub Entries
for i in range(len(list_entry)):
if not (isinstance(list_entry[i],list)):
list_entry[i] = [list_entry[i]]
size_dictionary[i] = len(list_entry[i])
# Now lets create the cartesian product
# Lets Create a Dictionary to hold all of the results
cartesian_result = {}
# Lets get the size of the final result
final_result_amount = 1
for i in range(size_dictionary["full_size"]):
final_result_amount = final_result_amount * size_dictionary[i]
# And create the final results
for i in range(final_result_amount):
cartesian_result[i] = []
for j in range(size_dictionary["full_size"]):
cartesian_result[i].append(list_entry[j][i % size_dictionary[j]])
print(cartesian_result[i])
def main():
lst = ['alpha',['beta','gamma'],['delta','peta','lambda']]
CartesianProduct(lst)
main()
将所有项目转换为列表后,可以使用^{} :
使用^{} ,这将要求您稍微修改输入(}):
'alpha'
到{在Python中使用库是很棒的!但是,如果您正在寻找纯Python实现:
虽然它不像使用itertools那么简单,但是实现库偶尔使用的逻辑还是很有趣的。在
相关问题 更多 >
编程相关推荐