#python #python-3.x #list
Вопрос:
Попытка объединить элементы из 2 списков и вывести их в виде строки. Однако, получив эту ошибку — можно только объединить str (не «список») в str
forenames = ['homer','bart','lisa'] surname = ['simpson'] fullnames =[] for name in forenames: fullnames.append(name ' ' surname) print (fullnames)
Комментарии:
1. Что касается вашей проблемы, если я добавлю элемент в список фамилий , будет ли он содержать 6 полных имен? Или?
2. Как бы я исправил эту проблему, если бы я добавил элемент в список фамилий?
3.
from itertools import product; [f'{first} {last}' for first, last in product(forenames, surname)]
4. @Джеймс, я просил уточнить ваше использование, будет ли это желаемым поведением?
Ответ №1:
Вы можете сделать это следующим образом:
forenames = ['homer','bart','lisa'] surname = ['simpson'] for forename in forenames: print(forename ' ' surname[0])
Результат выглядит следующим образом:
homer simpson bart simpson lisa simpson
Ответ №2:
Вы ищете что-то подобное?
forenames = ['homer','bart','lisa'] surname = ['simpson'] fullnames =[] for name in forenames: fullnames.append(name ' ' surname[0]) print ("n".join(fullnames))
Выход:
homer simpson bart simpson lisa simpson
Ответ №3:
forenames = ['homer','bart','lisa'] surname = ['simpson'] for f in forenames: for s in surname: fullnames = [f'{f} {s}'] str_fullnames = '' print(str_fullnames.join(fullnames))
или
forenames = ['homer','bart','lisa'] surname = ['simpson'] for f in forenames: for s in surname: print(f,s)
Комментарии:
1. С какой целью затем помещать его в список
join
, когда у самой строки f уже есть ответ (полное имя)?