python对于三个数字进行任意排序输出(菜鸟上线!!!)

菜鸟我呢,自己想到的解决方法真的很淳朴(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函数来转换成元组。这样我们就得到了所有可能的顺序。

菜鸟今天又懂了一丁点儿(-······-)!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值