0

我们有这个:

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')]

@编辑

我还有另一个问题:有时我的元组仅包含 2 个这样的项目(第二个元组): [('534', 'Tom, 'Jerry'), ('544', 'X-man - Hulk')] 我想通过下面的列表理解摆脱-so 我想出了这个修改后的版本: lst = [tuple(i.split(' - ') if len(tup) == 2 else tuple(i.strip(' - ') for i in tup) for tup in lst]但是会引发invalid syntax异常。

我很抱歉大家再次询问类似的问题,但列表理解对我来说是一个相当新的概念,但如果我在上面做对了,我将完成我的程序,所以我太不耐烦了,现在无法研究关于该主题的整个文档.

4

1 回答 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')]
于 2013-03-10T09:21:25.263 回答