2015-06-12 3 views
-2

Мне нужно написать функцию в Python, которая принимает корневое слово и генерирует список, добавляя список слов в корневое слово. т.е. Input = juicy, list =apple,tomato, orange , Output = juicy apple, juicy tomato, juicy orange. Подскажите пожалуйстаСоздайте список из корневого слова

def generate('word') 
    list = ['a' ,' b', 'c', 'd'] 

....

new list = [ 'word a', 'word b', 'word c', 'word d'] 
+1

Как правило, убедитесь, что вы добавили несколько примеров того, что вы пытались получить наилучшие результаты при переполнении стека. Вы всегда можете обновить свой вопрос. Добро пожаловать в переполнение стека, рекомендуемое чтение: http://stackoverflow.com/help/how-to-ask –

ответ

0

Это основная строка верстку + список постижение

>>> root_word = 'juicy' 
>>> my_list = ['a', 'b', 'c', 'd'] 
>>> new_list = ['{} {}'.format(root_word, i) for i in my_list] 
>>> print new_list 
['juicy a', 'juicy b', 'juicy c', 'juicy d'] 

Это похоже на следующее:

>>> new_list = [] 
>>> for word in my_list: 
...  new_word = '{} {}'.format(root_word, word) 
...  # '{}' is a generic character to be formatted 
...  # which in this case replaces root_word with the 
...  # first instance of '{}' and word with the second. 
...  
...  my_list.append(word) 
... print new_list 
['juicy a', 'juicy b', 'juicy c', 'juicy d'] 

Если вы хотите добавить это в функции, просто определить:

def join_words(root_word, my_list): 
    return ['{} {}'.format(root_word, i) for i in my_list] 

Вы должны, вероятно, корень слова и список в качестве аргументов в функции, так как это обобщает полученный код для вас: вы можете передать свой список к функции и генерировать различные комбинированные слова, как вы сочтете нужным.

0

Это еще один способ сделать список понимание

def generate(word): 
    list = ['a' ,' b', 'c', 'd'] 
    return [word + ' ' + letter for letter in list] 


print generate('word') 
2

функция будет:

def generate(root, words): 
    return [root + ' ' + w for w in words] 

Другим решением является использование лямбда-выражения:

generate = lambda root, words: [root + ' ' + w for w in words] 

В обоих случаях:

>>> generate('juicy', ['apple', 'tomato', 'orange']) 
['juicy apple', 'juicy tomato', 'juicy orange'] 
Смежные вопросы