所以我有一个这样的列表列表:
my_list = [['hi','Ohio',[1,0.0]],['bye','NewYork',[2,0.0]],['go','Maine',[3,0.0]]]
如您所见,它有3种不同的类型(字符串,整数和浮点数).
我需要将这些子列表“加入”以输出一个包含以下形式的新列表:
>>> new_list
[['hiOhio10.0'], ['byeNewYork20.0'], ['goMaine30.0']]
所以,为了做到这一点,我尝试了以下’列表理解’:
>>> new_list = [["".join(["".join(str(a)) for a in b])] for b in mylist]
但这给了我输出:
>>> new_list
[['hiOhio[1, 0.0]'], ['byeNewYork[2, 0.0]'], ['goMaine[3, 0.0]']]
这不是我所追求的.
我试过的其他事情:
>在先前显示的列表理解中添加另一个for循环.
例如:
[[["".join(["".join(str(c)) for c in a])]for a in b] for b in my_list]
但这给了我这个错误:
Traceback (most recent call last):
File "", line 1, in
[[["".join(["".join(str(c)) for c in a])]for a in b] for b in my_list]
TypeError: 'int' object is not iterable
>我也试过在’list flattening’上关注this SO question,但似乎这会扩展我列表中的每个条目,我不想要
任何帮助和/或提示都会很棒!
解决方法:
当你可以简单地使用for循环时,为什么会很复杂
new_list=[''.join(str(y) for x in z for y in x) for z in my_list]
标签:python,list,python-2-7,join,list-comprehension
来源: https://codeday.me/bug/20190725/1528308.html