Как объединить элементы из 2 списков в строку

#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 уже есть ответ (полное имя)?