连接元组元素 - 列表推导式
我们有这样的内容:
lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')]`
lst = [h+a for n,h,a in lst]
lst =[name.split(' - ') for name in lst]
我想先把每个元组中的 [1]
和 [2]
这两个元素连接起来,然后用 -
来分割。分割的代码可以正常工作,但用列表推导式来连接它们却不行。
我们希望最终的输出是:
[('534', 'Tom', 'Jerry'), ('544', 'X-man', 'Hulk')]
用上面的代码,我们只得到了:
[('Tom', 'Jerry'), ('X-man', 'Hulk')]
@编辑
我还有另一个问题:有时候我的元组只包含两个元素,比如第二个元组:
[('534', 'Tom', 'Jerry'), ('544', 'X-man - Hulk')]
我想去掉 -
,所以我用下面的列表推导式修改了代码:
lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]
但这段代码却引发了 invalid syntax
的错误。
抱歉大家,我又问了类似的问题,但列表推导式对我来说还是个新概念。如果我能搞定上面的内容,我就能完成我的程序,所以我现在太急于想要解决这个问题,不想去研究整个文档。
1 个回答
3
我可能理解错了,但你真的只是想去掉空格和'-'符号吗?
In [15]: lst = [('543', 'Tom', '- Jerry'), ('544', 'X-man - ', 'Hulk')]
In [16]: [tuple(i.strip(' -') for i in tup) for tup in lst]
Out[16]: [('543', 'Tom', 'Jerry'), ('544', 'X-man', 'Hulk')]