如何将Row1 + Row2与电子邮件扩展连接? TypeError:只能将列表(不是“str”)连接到列表

时间:2018-06-10 05:07:29

标签: python

我是新手,已经在这个论坛和网上查看,但无法找到解决我问题的具体方法。对不起,如果这对你们来说很容易!

我有一个我想最终导入的.csv文件。有三列:First_Name,Last_Name和Email_Extension。

所需的输出格式:First_Name.Last_Name@Email_Extension

到目前为止,这是我的代码:

First_Name =['Name1', 'Name2']
Last_Name = ['Last1', 'Last2']

Emails = First_Name + Last_Name

Final = Emails + '@gmail.com'

print(Final)

输出应为:Name1.Last1@Gmail.com& Name2.Last2@Gmail.com

非常感谢你的帮助!此外,非常感谢数据架构的任何一般技巧和指导/资源!

3 个答案:

答案 0 :(得分:0)

使用zip()合并您的两个列表:

first_name_list =['Name1', 'Name2']
last_name_list = ['Last1', 'Last2']

final_email_list = []
for first_name, last_name in zip(first_name_list, last_name_list):
    email = first_name + "." + last_name + "@gmail.com"
    final_email_list.append(email)

print(final_email_list[0]) # outputs: Name1.Last1@gmail.com

答案 1 :(得分:0)

尝试使用zip,然后使用字符串join函数:

First_Name =['Name1', 'Name2']
Last_Name = ['Last1', 'Last2']
print(' & '.join([x+'.'+y+'@gmail.com' for x,y in list(zip(First_Name,Last_Name))]))

输出:

Name1.Last1@gmail.com & Name2.Last2@gmail.com

或者如果你想要一个清单,试试这个:

First_Name =['Name1', 'Name2']
Last_Name = ['Last1', 'Last2']
print([x+'.'+y+'@gmail.com' for x,y in list(zip(First_Name,Last_Name))])

输出:

['Name1.Last1@gmail.com', 'Name2.Last2@gmail.com']

你可以用列表做很多事情,这里有它的文档:link

答案 2 :(得分:0)

使用 zip join

First_Name =['Name1', 'Name2']
Last_Name = ['Last1', 'Last2']

print('\n'.join(f'{x}.{y}@gmail.com' for x, y in zip(First_Name, Last_Name)))

# Name1.Last1@gmail.com
# Name2.Last2@gmail.com

您的代码问题是您尝试将 str 连接到列表。您只能将列表连接到列表