Python 如何提取字符串列表的一部分?

Python 如何提取字符串列表的一部分?,python,string,list,Python,String,List,我有一个字符串列表,我想提取每个字符串的前6个字符,并将它们存储在一个新列表中 我可以循环浏览列表,提取前6个字符,并将它们附加到新列表中 y = [] for i in range(len(x)): y.append(int(x[i][0:6])) 我想知道是否有一个优雅的单线解决方案。 我尝试了以下方法: y = x[:][0:6] 但它返回前6个字符串的列表 试试这个: y = [z[:6] for z in x] 这与此相同: y = [] #

我有一个字符串列表,我想提取每个字符串的前6个字符,并将它们存储在一个新列表中

我可以循环浏览列表,提取前6个字符,并将它们附加到新列表中

y = []
for i in range(len(x)):
    y.append(int(x[i][0:6]))
我想知道是否有一个优雅的单线解决方案。 我尝试了以下方法:

y = x[:][0:6]
但它返回前6个字符串的列表

试试这个:

y = [z[:6] for z in x]
这与此相同:

y = []               # make the list
for z in x:          # loop through the list
    y.append(z[:6])  # add the first 6 letters of the string to y
这可能会有帮助

stringList = ['abcdeffadsff', 'afdfsdfdsfsdf', 'fdsfdsfsdf', 'gfhthtgffgf']
newList = [string[:6] for string in stringList]
试试这个

ans_list = [ element[:6] for element in list_x ]

是的,有。您可以使用以下
newArray=[x[:6]表示y中的x]

具有以下语法:
list[开始:结束:步骤]

参数:

开始-对象切片开始的起始整数
停止-整数,直到切片发生。切片在索引停止点-1处停止。
步长-整数值,用于确定切片的每个索引之间的增量
示例:

演示
假设我有一个
数组=[“博士生”,“达莱克斯”,“电子人”,“塔迪斯”,“SonicSqrewDriver”]


我想得到
前3个

(或者我决定撤销它):

(现在我想买最后一件)

(或最后3项)


您还可以使用map进行以下操作:

list(map(lambda w: int(w[:6]), x))
并使用
itertools.islice

list(map(lambda w:list(int(itertools.islice(w, 6))), x))

查看列表理解仔细阅读问题:
我想知道是否有一个优雅的单线解决方案。我尝试了以下操作:
y=x[:][0:6]
。OP正在尝试将列表理解与切片结合使用。
>>> array[:3] # 0, 1, 2 (.. then it stops)
['doctorWho', 'Daleks', 'Cyborgs']
>>> array[::-1]
['SonicSqrewDriver', 'Tardis', 'Cyborgs', 'Daleks', 'doctorWho']
>>> array[-1]
'SonicSqrewDriver'
>>> array[-3:]
['Cyborgs', 'Tardis', 'SonicSqrewDriver']
list(map(lambda w: int(w[:6]), x))
list(map(lambda w:list(int(itertools.islice(w, 6))), x))