python中1234能组成多少3位数,并且不重复的3种方法

python用1行代码搞定1234组成3位数的方法
1234四位数字组合成3位数,并且不重复,用python代码来跑一下

传统for循环3层嵌套,层层递进,看着~~~~
  • 实现起来比较简单,容易理解,但是小斜坡很不耐看
  • 代码量:6行
    else:
        # 传统循环嵌套
        for i in num_list:
            for j in num_list:
                for k in num_list:
                    if i != j and i != k and j != k:
                    	# 最终结果保存为列表,每种组合用元组保存
                        result_list.append((i,j,k))
                        # 最终组合个数,也可以使用len()
                        count_num += 1
利用itertools工具对循环进行迭代,简化代码
  • 使用itertools工具后,循环嵌套层数明显减少,代码量减少2行
  • 下面还有更嗨的
from itertools import product
for i, j, k in product(num_list,repeat=3):
    if i != j and i != k and j != k:
    	# 最终结果保存为列表,每种组合用元组保存
        result_list.append((i,j,k))
        # 最终组合个数,也可以使用len()
        count_num += 1
列表推导式 + itertools,一行代码轻松搞定
  • 列表推导式:[表达式 循环体 筛选条件]
    • 注意点:if条件筛选后不能有else语句,只是用作条件筛选
result_lst = [(i,j,k) for i, j, k in product(num_list,repeat=3) if i != j and i != k and j != k]

纯属自嗨,自嗨

你可能感兴趣的:(python,python)