菜鸟我呢,自己想到的解决方法真的很淳朴(chun)(—/\—)!
按照排列组合的方式列出所有可能情况:
list = [3, 6, 9] # 先对列表进行排序 list.sort() # 使用条件运算符,首先判断三个数是否都不相等 if len(set(list)) == 3: print(list[0] * 100 + list[1] * 10 + list[2]) print(list[0] * 100 + list[2] * 10 + list[1]) print(list[1] * 100 + list[0] * 10 + list[2]) print(list[1] * 100 + list[2] * 10 + list[0]) print(list[2] * 100 + list[1] * 10 + list[0]) print(list[2] * 100 + list[0] * 10 + list[1]) # 如果第一个和第二个数相等,但与第三个数不等 elif list[0] == list[1] and list[0] != list[2]: print(list[1] * 100 + list[0] * 10 + list[2]) print(list[1] * 100 + list[2] * 10 + list[0]) print(list[2] * 100 + list[1] * 10 + list[0]) print(list[2] * 100 + list[0] * 10 + list[1]) # 如果第一个和第三个数相等,但与第二个数不等 elif list[0] == list[2] and list[0] != list[1]: print(list[0] * 100 + list[1] * 10 + list[2]) print(list[0] * 100 + list[2] * 10 + list[1]) print(list[1] * 100 + list[0] * 10 + list[2]) print(list[1] * 100 + list[2] * 10 + list[0]) # 如果三个数都相等 else: print(list[0] * 100 + list[2] * 10 + list[1])
是不是淳朴,除了代码字数有点多,我觉得这是我的脑管子,想出来最简单的方法了~~(-……-)~
a = 1
b = 2
c = 3
# 以所有可能的顺序输出(a, b, c)
orders = [tuple(sorted(a)) for a in itertools.permutations([a, b, c])]
for order in orders:
print(order)
在这个代码中,使用了Python的itertools模块中的permutations函数。这个函数返回输入列表的所有可能排列,然后我们用sorted函数来把每个排列排序成升序,然后用tuple函数来转换成元组。这样我们就得到了所有可能的顺序。
菜鸟今天又懂了一丁点儿(-······-)!