печать списка без использования цикла for - PullRequest
0 голосов
/ 10 октября 2018

Я хочу напечатать элементы списка без использования цикла for

Пример,

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

Код:

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

2-й код:

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, например "*", но он не работает.Я до сих пор не мастер сплат.

Ожидаемый результат:

[['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']]

1 Ответ

0 голосов
/ 10 октября 2018

Использование списка:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...