[英]How to merge all the elements of a list
我有一个任务是打印4个字符中'D'和'E'的所有组合。 是)我有的:
x = product(['D', 'E'], repeat=4)
p = ''.join(str(s) for s in x)
lxx = []
lxx.append(p)
f = ''.join(lxx)
print(f)
我得到了什么:
('D', 'D', 'D', 'D')('D', 'D', 'D', 'E')('D', 'D', 'E', 'D')('D', 'D', 'E', 'E')('D', 'E', 'D', 'D')('D', 'E', 'D', 'E')('D', 'E', 'E', 'D')('D', 'E', 'E', 'E')('E', 'D', 'D', 'D')('E', 'D', 'D', 'E')('E', 'D', 'E', 'D')('E', 'D', 'E', 'E')('E', 'E', 'D', 'D')('E', 'E', 'D', 'E')('E', 'E', 'E', 'D')('E', 'E', 'E', 'E')
我需要的:
DDDD
DDDE
DDED
DDEE
DEDD
DEDE
DEED
DEEE
EDDD
EDDE
EDED
EDEE
EEDD
EEDE
EEED
EEEE
这将有效:
from itertools import product
list(product(['D', 'E'], repeat=4))
对于漂亮的印刷:
for i in product(['D', 'E'], repeat=4):
print(''.join(i))
# DDDD
# DDDE
# DDED
# DDEE
# DEDD
# DEDE
# DEED
# DEEE
# EDDD
# EDDE
# EDED
# EDEE
# EEDD
# EEDE
# EEED
# EEEE
from itertools import product
x = product(['D', 'E'], repeat=4)
for word in ["".join(x) for x in list(x)]: print(word)
DDDD
DDDE
DDED
DDEE
DEDD
DEDE
DEED
DEEE
EDDD
EDDE
EDED
EDEE
EEDD
EEDE
EEED
EEEE
如果你需要“不太神奇”的东西,我想你正在寻找这样的东西:
def product(items, repeat, currentstring="", ret = None):
if ret == None:
ret = list()
if len(currentstring) == repeat:
ret.append(currentstring)
print(currentstring)
else:
for letter in items:
product(items, repeat, currentstring + letter, ret)
return ret
product(['D', 'E'], repeat=4)
其他答案似乎有效。 所以,使用它只是为了你想要练习递归或其他东西。 关于它的好处是,它允许接收更多的信件。 就像,你可以试试
product(['D', 'E', 'F', 'G'], repeat=4)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.