亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 python 列表中的元素上只保留兩個部分

在 python 列表中的元素上只保留兩個部分

jeck貓 2022-01-18 21:37:14
我在 python 中尋找一個命令,以便只保留在一個列表中3 first letters,content_content > con_con 這里是一個示例:list_exp=["Babylona_expetiendra","Ocracylus_machabrus","Ojeris_multifasciatus"]list_exp=["Bab_exp","Ocr_mac","Oje_mul"]有人有想法嗎?謝謝您的幫助 。
查看完整描述

3 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

您可以使用列表理解:


['_'.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']


查看完整回答
反對 回復 2022-01-18
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

你可以這樣試試。


在運行所有這些之前,只需快速瀏覽一下在字符串上定義的list comprehension&方法join()的使用。split()


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

>>> 

>>> output = ['_'.join([part[:3] for part in name.split("_")]) for name in list_exp]

>>> output

['Bab_exp', 'Ocr_mac', 'Oje_mul']

>>> 


查看完整回答
反對 回復 2022-01-18
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

[

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

然后我們使用 [:3] 為新列表中的每個字符串獲取前 3 個字母


Finnaly 再次加入 '_'.join()


['Bab_exp', 'Ocr_mac', 'Oje_mul']

此示例使用地圖解包 和lamdas


查看完整回答
反對 回復 2022-01-18
  • 3 回答
  • 0 關注
  • 327 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號