Python:每日一题001
2021-07-02 11:04
标签:思路 and pre 条件判断 lis python div 多少 列表 Python:每日一题001 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? **程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 个人解题思路 利用排列组合知识算出总共有4X3X2= 24个数,构造每个数加入列表中,打印输出。 分析:这种写法有个漏洞,就是随机取出的3个数并不能完全取完所有可能的数,造成结果不唯一,每次运行程序可能结果都不一致。 参考解答方法: 分析:用3个for循环,加上if条件判断,将产生的数加入列表即可 上述代码可以继续精简 分析:采用列表生成式,分别对百位、十位、个位的数字进行生成并合成列表的元素。 (本文编号001,首发于2018年9月11日) Python:每日一题001 标签:思路 and pre 条件判断 lis python div 多少 列表 原文地址:https://www.cnblogs.com/Nicholas0707/p/9630924.html import random
li = ["1","2","3","4"]
all_sum_num = 4*4*4
new_sum_list = []
for i in range(all_sum_num):
choose_li = random.sample(li,3)
new_num_str = "".join(choose_li)
new_sum_list.append(new_num_str)
num_set = set(new_sum_list)
num_str_list = list(num_set)
print(num_str_list)
print(len(num_str_list))
li = []
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i != k and i != j and j != k:
num = i*100 + j*10 + k
li.append(num)
?
print(li)
print(len(li))
li1 = [1,2,3,4]
li2 = [a*100 + b*10 +c for a in li1 for b in li1 for c in li1 if a != b and a != c and b != c]
print(li2)
print(len(li2))