【发布时间】:2018-06-04 08:26:28
【问题描述】:
我有下一个清单:
texts = [['abcdD', 'asdfaD'], ['qerqD', 'asdfafdasD']]
我想从所有字符串的右侧删除所有字符D。
对于一个列表,我可以轻松完成:
res1 = [el.strip('D') for el in texts[0]] # ['abcd', 'asdfa']
现在我对每个文本都尝试相同的方法:
res2 = [el.strip('D') for text in texts for el in text]
但它返回一个列表(结合我的两个!):
['abcd', 'asdfa', 'qerq', 'asdfafdas']
下次需要时:
[['abcd', 'asdfa'], ['qerq', 'asdfafdas']]
如何正确处理?
【问题讨论】:
-
差不多,换个顺序就行了。
[[el.strip('D') for el in text] for text in texts] -
您需要嵌套 list-comprehensions。
-
@COLDSPEED
rstrip('D')会更精确。 -
确实如此,根据 Op 对问题的描述。
-
@cᴏʟᴅsᴘᴇᴇᴅ 你又来了! :D 几天前你帮助了我!你的评论完美!如果您发布答案,我会接受。谢谢。
标签: python string text generator iterable