如何用Lambda一行代码将嵌套列表转换为姓名字符串列表?
嵌套列表转全名字符串列表的解决方案
你的问题出在lambda的逻辑上:之前的str(x)只是把整个子列表转换成了字符串形式(比如str(['hassan','abasi'])会输出"['hassan', 'abasi']"),并没有把子列表里的两个元素拼接成空格分隔的全名。
正确写法
方法1:直接用列表推导式 + join(最简洁)
First_last_Name = [['hassan','abasi'],['mohammad','sajadi'],['bahman','mardomani'],['sarah','masti']] full_str = [' '.join(name) for name in First_last_Name]
' '.join(name)会把每个子列表中的两个字符串用空格连接,直接生成目标格式的字符串。
方法2:结合lambda实现
如果一定要用lambda,可以让lambda负责拼接子列表元素:
full_str = [(lambda x: ' '.join(x))(name) for name in First_last_Name]
或者用map配合lambda:
full_str = list(map(lambda x: ' '.join(x), First_last_Name))
验证结果
以上两种方法运行后,full_str都会得到:['hassan abasi','mohammad sajadi','bahman mardomani','sarah masti']
内容的提问来源于stack exchange,提问作者Seyed Mohammad Sajadi
相关产品推荐
相关产品推荐

