Python 如何删除列表中每个字符串的第一个单词并将这些单词附加到新列表中

Python 如何删除列表中每个字符串的第一个单词并将这些单词附加到新列表中,python,python-3.x,list,Python,Python 3.x,List,如何获取列表中每个字符串的第一个单词并创建新列表 list1 = ['GenX XE','GenX XM','GenX XT','GenX XMA','GenX XTA'] # this is my my list n= len(list1) for i in range(n): print (list1[i]) 输出: [GenX', 'GenX', 'GenX', 'GenX', 'GenX'] 使用str.split,然后使用index访问元素。在下面的例子中,我使用列表

如何获取列表中每个字符串的第一个单词并创建新列表

list1 = ['GenX XE','GenX XM','GenX XT','GenX XMA','GenX XTA']

# this is my my list 
n= len(list1)

for i in range(n):
    print (list1[i])
输出:

[GenX', 'GenX', 'GenX', 'GenX', 'GenX']

使用
str.split
,然后使用index访问元素。在下面的例子中,我使用列表理解

Ex:

list1 = ['GenX XE','GenX XM','GenX XT','GenX XMA','GenX XTA']
print([i.split()[0] for i in list1])
['GenX', 'GenX', 'GenX', 'GenX', 'GenX']
输出:

list1 = ['GenX XE','GenX XM','GenX XT','GenX XMA','GenX XTA']
print([i.split()[0] for i in list1])
['GenX', 'GenX', 'GenX', 'GenX', 'GenX']
你可以这样做

In [5]: map(lambda x:x.split()[0],list1)
Out[5]: ['GenX', 'GenX', 'GenX', 'GenX', 'GenX']

使用
列出理解内容

In [1757]: n = [i.split()[0] for i in list1]

In [1758]: n
Out[1758]: ['GenX', 'GenX', 'GenX', 'GenX', 'GenX']
这基本上意味着:

In [1754]: n = []

In [1755]: for i in list1:
      ...:     n.append(i.split()[0])
      ...:     

In [1756]: n
Out[1756]: ['GenX', 'GenX', 'GenX', 'GenX', 'GenX']

注意:list1[i].split()[0]

您可以使用正则表达式执行此操作:

import re
import numpy as np
l = ['GenX XE','GenX XM','GenX XT','GenX XMA','GenX XTA']
r = [re.findall('(?i)([A-Z0-9]+)',x) for x in l]
要提取特定信息,您可以执行以下操作:

np.array(r)[:,0]
并获得:

array(['GenX', 'GenX', 'GenX', 'GenX', 'GenX'], dtype='<U4')

array(['GenX','GenX','GenX','GenX','GenX','GenX','GenX'],dtype='
print([i.split()[0]表示列表1中的i])
看看字符串的
split()
方法。也许这有帮助,检查split()。@rakesh它的缩进错误:意外缩进,我不理解你的建议。不要在列表(或其他序列)上使用基于len的迭代在Python中,这是一种很强的反模式。使用
来表示序列中的项
。也不要对变量名使用数字后缀。尝试想出有意义的名称。在这种情况下,例如“input_strings”。
i.split(“”)
有点多余。您可以使用
i.split()
:P:PGot it。更新了我的答案。期待您的投票:P:Pha!足够公平:D@prapulr既然答案对你有帮助,也请投上一票。