如何在python中只保留每个列表元素的第一个单词?

2j4z5cfb  于 2023-05-19  发布在  Python
关注(0)|答案(2)|浏览(104)

我有一个列表,看起来像这样

images =['atr5500-ve-7.8.1 version=7.8.1 [Boot image]' , 
'atr5300-ve-3.4.4','atr5600-ve-7.6.6','atr5300-ve-3.4.4',
'atr2300-ve-8.7.8','atr1200-ve-1.2.2','atr5600-ve-3.2.2']

基本上,我在寻找关键字,这将有助于只获得列表中所有元素的第一个单词,这意味着我期待这样的输出

images =['atr5500-ve-7.8.1' , 
'atr5300-ve-3.4.4','atr5600-ve-7.6.6','atr5300-ve-3.4.4',
'atr2300-ve-8.7.8','atr1200-ve-1.2.2','atr5600-ve-3.2.2']

我知道我必须使用for循环并像for i in list: list[i]= .....一样遍历列表,但不确定使用什么来剥离单个列表元素并放回列表中。

yiytaume

yiytaume1#

你可以像@mrxra建议的那样使用正则表达式,但我认为这有点矫枉过正,简单地使用split()方法:

images =['atr5500-ve-7.8.1 version=7.8.1 [Boot image]' ,
'atr5300-ve-3.4.4','atr5600-ve-7.6.6','atr5300-ve-3.4.4',
'atr2300-ve-8.7.8','atr1200-ve-1.2.2','atr5600-ve-3.2.2']

result = [
    im.split(" ")[0] for im in images
]
qxsslcnc

qxsslcnc2#

import re

images =['atr5500-ve-7.8.1 version=7.8.1 [Boot image]' ,
'atr5300-ve-3.4.4','atr5600-ve-7.6.6','atr5300-ve-3.4.4',
'atr2300-ve-8.7.8','atr1200-ve-1.2.2','atr5600-ve-3.2.2']

print([re.sub(r'^([^\s]+).*$', '\\1', i) for i in images])

输出:

['atr5500-ve-7.8.1', 'atr5300-ve-3.4.4', 'atr5600-ve-7.6.6', 'atr5300-ve-3.4.4', 'atr2300-ve-8.7.8', 'atr1200-ve-1.2.2', 'atr5600-ve-3.2.2']

相关问题