鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 1

  [复制链接]
发表于 2019-10-29 07:35:36 | 显示全部楼层
刚开始学习哈哈哈
for a in range(1,5):
     for b in range(1,5):
          for c in range(1,5):
               if i != a and a != b and b != c:
                    print("%d%d%d" % (a,b,c))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 05:25:23 | 显示全部楼层
强大的 itertools
import itertools
a = range(1,5)
y = list(itertools.permutations(a,3))
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != j and i != k and j != k:
                print(i,j,k)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 14:59:05 | 显示全部楼层

for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
          if x != y and  x != z and y != z:
                print(x,y,z)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 20:28:48 From FishC Mobile | 显示全部楼层
for u in range(1,5):
for m in range(1,5):
for w in range(1,5):
if u!=m and u!=w and m !=
end=int('u'+'m'+'w')
print(end)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-12 20:30:48 From FishC Mobile | 显示全部楼层
for u in range(1,5):
for m in range(1,5):
for w in range(1,5):
if u!=m and u!=w and m !=w:
end=int('u'+'m'+'w')
print(end)
len(print)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-13 10:19:53 | 显示全部楼层
本帖最后由 newbison 于 2019-11-13 10:20 编辑

list = [(x, y, z) for x in range(1, 5) for y in range(1, 5) for z in range(1, 5) if x != y if x != z if y != z]
print(list)
print(len(list))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 10:44:48 | 显示全部楼层
for x in range(1,5):
    for y in range(1,5):
        for z in rang(1,5):
            if x!=y and y!=z and x!=z:
            #(此处不能写x != y != z,否则会出现 x和z相等的情况,如121 131等,至于为啥我还不知道)
                print(x,y,z)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 14:32:24 | 显示全部楼层
a = []
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i != j) and (i != k) and (j!= k):
                a.append(100*i+10*j+k)
print('一共有%d个三位数,分别是:\n'%len(a),a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 15:59:30 | 显示全部楼层

def fun2(a,b,c,d):
    L1 = []
    for N1 in (a,b,c,d):
        for N2 in (a,b,c,d):
            for N3 in (a,b,c,d):
                if((N1!=N2) and (N1!=N3) and (N2!=N3)):
                    L1.append(N1*100 +N2*10 + N3)
    print(L1)
#试用与任意4个不相等的数字组合不重复地3位数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-23 13:58:35 | 显示全部楼层
达达里昂 发表于 2017-4-2 13:53
list = []
for x in range(1,5):
    for y in range(1,5):

这个完成了所有要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-23 14:21:08 | 显示全部楼层
新手·ing 发表于 2017-3-24 21:43
这是我的解答,欢迎大家一起交流。

亲   121 122 这种都不符合题目要求吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-23 14:23:34 | 显示全部楼层
伤心地铁 发表于 2017-3-24 22:08
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):

假如     if x != y and  x != z or y != z:    会怎么样?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 22:53:09 | 显示全部楼层
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if i != j != k:
                print("{}{}{}".format(i,j,k))
让三个数连贯起来了  看的更舒服一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-30 21:05:46 | 显示全部楼层
i = []
for a in range(1,5):
    for b in range(1,5):
        for c in range(1,5):
            d = a*100+b*10+c
            if d not in i:
                i.append(d)
print(len(i))
print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 11:18:34 | 显示全部楼层
a=[]
b=[1,2,3,4]
for i in b:
    for j in b:
        for k in b:
            if (i!=j) and (j!=k) and (k!=i):
                c=i*100+j*10+k
                a.append(c)
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 06:40:02 | 显示全部楼层
学习到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 14:15:21 | 显示全部楼层
list=[]
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
            if x!=y and x!=z and y!=z:
                a=100*x+10*y+z
                list.append(a)
print('一共有',len(list),'种组合')
print('分别为',list)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-16 09:15:00 | 显示全部楼层
count =0
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:
                print(i,j,k)
                count+=1
print(count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 06:57:06 | 显示全部楼层
def f1(L):
    count=0
    for i in L:
        L1=L.copy()
        L1.remove(i)
        for j in L1:
            L2=L1.copy()
            L2.remove(j)
            for k in L2:
                print(i*100+j*10+k)
                count+=1
    return count
print(f1([1,2,3,4]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-11 11:50:27 | 显示全部楼层
求个通解
from functools import reduce

# 初始数字列表
list_num = [1, 2, 3, 4, 5]
# 要组成多少位互不相同且无重复的数字
n = 4

# 辅助列表
num_s = []
num_lst = []

def f(lst, n):
    global num_s
    global num_lst

    # 递归出口
    if len(num_s) == n:
        i = reduce(lambda x, y: x*10+y, num_s)
        num_lst.append(i)

    else:
        for i in range(len(lst)):
            # 从列表弹出,获取数字
            num = lst.pop(i)
            # 压栈
            num_s.append(num)
            # 递归
            f(lst, n)
            # 出栈
            num_s.pop()
            # 归还数字到原列表
            lst.insert(i, num)


f(list_num, n)
print('满足条件有{}个:'.format(len(num_lst)))
print(num_lst)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 04:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表