首页 > 解决方案 > 不使用 for 循环打印列表

问题描述

我希望在不使用 for 循环的情况下打印列表中的元素

例子,

a = ["I","have","something","to","buy"]

代码:

from itertools import combinations
aa = list(combinations(a,4))
print("element_{}".format(*aa))

第二个代码:

def word(aa):
    print(aa)
    for x in aa:
        return x

aa = list(combinations(a, len(a)-1))

for wordd in aa:
    aaa.append("element_{}".format(word(list(wordd))))

print(aaa)

我尝试使用 Splat 或诸如“*”之类的 splatting,但它不起作用。我还没有掌握 splat。

预期输出:

[['element_I', 'element_have', 'element_something', 'element_to'], ['element_I', 'element_have', 'element_something', 'element_buy'], ['element_I', 'element_have', 'element_to', 'element_buy'], ['element_I', 'element_something', 'element_to', 'element_buy'], ['element_have', 'element_something', 'element_to', 'element_buy']]

标签: pythonlist

解决方案


使用列表理解:

from itertools import combinations
aa = list(combinations(a,4))
print([['element_{}'.format(x) for x in e] for e in aa])

输出 :

[['element_I', 'element_have', 'element_something', 'element_to'], ['element_I', 'element_have', 'element_something', 'element_buy'], ['element_I', 'element_have', 'element_to', 'element_buy'], ['element_I', 'element_something', 'element_to', 'element_buy'], ['element_have', 'element_something', 'element_to', 'element_buy']]

使用地图:

from itertools import combinations
aa = list(combinations(a,4))
print(map(lambda x : map(lambda y : 'element_{}'.format(y), x), aa))

推荐阅读