简化程序
a=input()a=eval(a)
def apple():
for i in a:
for j in a:
for k in a:
for h in a:
for g in a:
print(i,j,k,h,g)
apple()
感觉程序太麻烦了,而且不能满足题目中说的只列出“其他可能”,最后希望程序可以列举不止五个,按照用户的输入来定 https://www.bilibili.com/video/BV1zB4y1Q7zv/ tommyyu 发表于 2022-11-17 16:08
https://www.bilibili.com/video/BV1zB4y1Q7zv/
不能满足题目中说的只列出“其他可能”,最后希望程序可以列举不止五个,按照用户的输入来定{:5_92:}
本帖最后由 tommyyu 于 2022-11-17 16:19 编辑
>>> import itertools
>>> def apple():
a = eval(input())
b = int(input('请输入次数:'))
for i in itertools.product(*( * b)):
for j in i:
print(j, end = ' ')
print()
>>> apple()
请输入次数:3
1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3
3 1 1
3 1 2
3 1 3
3 2 1
3 2 2
3 2 3
3 3 1
3 3 2
3 3 3
for i in itertools.product(*( * b)):
这个代码能解释一下吗
tommyyu 发表于 2022-11-17 16:18
感觉您好像误解我的话了,这个程序和图中所写的不是一个题,我的意思是可以输入或者
你看这样输入进去不一定是五个元素,也可以是三个。不是额外加输入次数 光头小淘七 发表于 2022-11-17 16:35
感觉您好像误解我的话了,这个程序和图中所写的不是一个题,我的意思是可以输入或者
...
字符可以重复吗?例如 1、2、3
1、1、1算其中的一个答案吗? 本帖最后由 tommyyu 于 2022-11-17 16:44 编辑
def apple():
a = eval(input())
b = 5
for i in itertools.product(*( * b)):
for j in i:
if tuple(sorted(i)) == tuple(sorted(set(i))):
print(j, end = ' ')
print()这样就是原题的效果 jhq999 发表于 2022-11-17 16:40
字符可以重复吗?例如 1、2、3
1、1、1算其中的一个答案吗?
不能哦
tommyyu 发表于 2022-11-17 16:40
这样就是原题的效果
for i in itertools.product(*( * b)):
能解释一下吗
光头小淘七 发表于 2022-11-17 16:42
能解释一下吗
*b就是 ,其中有 b 个 a
itertools.product(*( * b)) 中,*( * b) 就是 *,而itertools.product( *( * b) )就是itertools.product( * ),其中这个 * 是解包,就变成了 itertools.product(a, a, a, ...) 刚刚的代码有一个错误{:10_266:}
这个是改完的:def apple():
import itertools
a = eval(input())
b = 5
for i in itertools.product(*( * b)):
if tuple(sorted(i)) == tuple(sorted(set(i))):
for j in i:
print(j, end = ' ')
print() 本帖最后由 jackz007 于 2022-11-17 17:07 编辑
这个代码用递归实现,楼主可以测试
def foo(s , g):
if s:
for x in s:
s1 = '' . join(s . split(x))
foo(s1 , g + x)
else : print(g)
s = input()
foo(s , '')
1
tommyyu 发表于 2022-11-17 16:46*b就是 ,其中有 b 个 a
itertools.product(*( * b)) 中,*( * b) 就是 *[ ...
怎么回事 光头小淘七 发表于 2022-11-17 17:06
怎么回事
出现了bug{:10_266:}
def apple():
import itertools
a = eval(input())
b = 5
for i in itertools.product(*( * b)):
if tuple(sorted(i)) == tuple(sorted(set(i))):
for j in i:
print(j, end = ' ')
print()
这个已经试过,没有任何问题了 if tuple(sorted(i)) == tuple(sorted(set(i))):
这行是什么意思{:10_266:}
又什么作用啊,感觉用处不大,但是我删掉后程序的运行结果全变了 光头小淘七 发表于 2022-11-17 17:17
这行是什么意思
又什么作用啊,感觉用处不大,但是我删掉后程序的运行结果全变了
判断有没有重复 tommyyu 发表于 2022-11-17 17:20
判断有没有重复
大佬,你忘了去掉它本身了,题目说的是要给出其他可能,要把输入的那种情况剔除 光头小淘七 发表于 2022-11-17 17:25
大佬,你忘了去掉它本身了,题目说的是要给出其他可能,要把输入的那种情况剔除
我真的不太会 麻烦您了{:10_254:} 光头小淘七 发表于 2022-11-17 17:25
大佬,你忘了去掉它本身了,题目说的是要给出其他可能,要把输入的那种情况剔除
是不是这个意思>>> def apple():
import itertools
a = eval(input())
b = 5
if tuple(sorted(set(a))) != tuple(sorted(a)):
print('输入错误!')
for i in itertools.product(*( * b)):
if tuple(sorted(i)) == tuple(sorted(set(i))):
for j in i:
print(j, end = ' ')
print()
页:
[1]
2