在python列表中只保留元素的两部分

在python列表中只保留元素的两部分,python,python-3.x,Python,Python 3.x,我正在寻找python中的一条命令,以便只将content\u content>con\u con 以下是一个例子: list_exp=["Babylona_expetiendra","Ocracylus_machabrus","Ojeris_multifasciatus"] list_exp=["Bab_exp","Ocr_mac","Oje_mul"] 有人有主意吗?感谢您的帮助。您可以使用列表: ['_'.join(map(lambda x: x[:3], x.split('_')))

我正在寻找python中的一条命令,以便只将
content\u content>con\u con
以下是一个例子:

list_exp=["Babylona_expetiendra","Ocracylus_machabrus","Ojeris_multifasciatus"]

list_exp=["Bab_exp","Ocr_mac","Oje_mul"]

有人有主意吗?感谢您的帮助。

您可以使用列表:

['_'.join(map(lambda x: x[:3], x.split('_'))) for x in list_exp]
代码

list_exp=["Babylona_expetiendra","Ocracylus_machabrus","Ojeris_multifasciatus"]

print(['_'.join(map(lambda x: x[:3], x.split('_'))) for x in list_exp])
# ['Bab_exp', 'Ocr_mac', 'Oje_mul']
你可以这样试试

在运行所有这些之前,只需快速查看一下
列表理解
&
join()
split()
方法在字符串上定义的用法

解释:

首先,我们将通过“u”键拆分列表中的每个字符串

[['Babylona', 'expetiendra'], ['Ocracylus', 'machabrus'], ['Ojeris', 'multifasciatus']]
然后,我们使用[:3]为新列表中的每个字符串获取前3个字母

最后再次使用“u”进行连接。join()


这个例子使用and

你能解释一下你是如何得出这个列表的吗!我想开始学习列表理解来解决这些复杂的问题@austin@DeveshKumarSingh,construction在
上对每个元素进行拆分,并使用
map
从每个拆分中获取前三个字符,最后一个
join
将产生预期的输出。你在正常情况下所做的就是总结。没什么特别的。谢谢你的帮助。非常感谢你的帮助。谢谢:)这帮了我的忙。谢谢你@chippycentra。
[
    *map(
        lambda strip:'_'.join([st[:3] for st in strip]),
        [
            *map(
                lambda s:s.split('_'),
                ["Babylona_expetiendra","Ocracylus_machabrus","Ojeris_multifasciatus"]
            )
        ]
    )
]
[['Babylona', 'expetiendra'], ['Ocracylus', 'machabrus'], ['Ojeris', 'multifasciatus']]
['Bab_exp', 'Ocr_mac', 'Oje_mul']