作者mikapauli (cablin)
看板Python
标题Re: [问题] 如何写一个程式可以把dict印出如下的格式
时间Wed Oct 3 21:29:36 2012
def
product(
target):
targets = [list(map(
j.__add__, map(str,
target[
j]))) for
j in
target]
indices = range(len(
targets))
iters = list(map(iter,
targets))
values = list(map(next,
iters))
while True:
print(''.join(
values))
for
i in
indices:
try:
values[
i] = next(
iters[
i])
break
except StopIteration:
iters[
i] = iter(
targets[
i])
values[
i] = next(
iters[
i])
else:
break
※ 引述《kadodo (想办法突破)》之铭言:
: 如果我的dict如下
: target = {'a': [1,2], 'b': [3,4,5], 'c': [6,7],...}
: 怎麽写一个程式 不管我的target有多少elements, 就是印出以下内容
: 以我举的为例子 顺序怎样没差 重要的是要列出 2x3x2=12种情况(12行)
: a1b3c6
: a1b3c7
: a1b4c6
: a1b4c7
: a1b5c6
: a1b5c7
: a2b3c6
: a2b3c7
: a2b4c6
: a2b4c7
: a2b5c6
: a2b5c7
--
「……私も、…っ、
母様の娘に生まれて…
母様とこれまでともに过ごしてきて…
本当に、
幸せでございました…っ!!」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.217.2
1F:→ kdjf: itertools.product如何? 10/03 21:45
2F:→ mikapauli:可以阿,练习一下而已w 10/03 21:47
3F:→ kadodo:谢谢两位热心的提供了方法 我都会试着用看看~ 10/03 21:52
用itertools的写法
from itertools import product as p
t = {'a': [1,2], 'b': [3,4,5], 'c': [6,7]}
for i in map(''.join, p(*(map(j.__add__, map(str, t[j])) for j in t))):
print(i)
不知道速度谁比较快(?
※ 编辑: mikapauli 来自: 140.112.233.183 (05/21 13:46)