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

时间:2019-01-06 04:51:14

标签: python string list

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

我可以遍历列表并提取前6个字符,并将其附加到新列表中。

y = []
for i in range(len(x)):
    y.append(int(x[i][0:6]))

我想知道是否有一种优雅的一线解决方案。 我尝试了以下方法:

y = x[:][0:6]

但是它返回前6个字符串的列表。

5 个答案:

答案 0 :(得分:7)

尝试一下:

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

答案 1 :(得分:1)

这可能有帮助

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

答案 2 :(得分:1)

尝试一下

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

答案 3 :(得分:0)

是的。。您可以使用以下 list-comprehention.
newArray = [x[:6] for x in y]

Slicing具有以下语法:list[start:end:step]

参数:

    start-对象切片开始的起始整数
    stop-整数,直到切片发生为止。切片在索引停止处停止-1.
    step-整数值,用于确定切片时每个索引之间的增量


示例:


    list[start:end] # get items from start to end-1
    list[start:]    # get items from start to the rest of the list
    list[:end]      # get items from the beginning to the end-1 ( WHAT YOU WANT )
    list[:]         # get a copy of the original list

如果startend-negative,则将从end开始计数


    list[-1]    # last item
    list[-2:]   # last two items
    list[:-2]   # everything except the last two items
    list[::-1]  # REVERSE the list

演示
假设我有一个array = ["doctorWho","Daleks","Cyborgs","Tardis","SonicSqrewDriver"]

,我想获得first 3项。

>>> array[:3] # 0, 1, 2 (.. then it stops)
['doctorWho', 'Daleks', 'Cyborgs']

(或我决定将其撤消):

>>> array[::-1]
['SonicSqrewDriver', 'Tardis', 'Cyborgs', 'Daleks', 'doctorWho']

(现在我想获取最后一项)

>>> array[-1]
'SonicSqrewDriver'

(或最后3个项目)

>>> array[-3:]
['Cyborgs', 'Tardis', 'SonicSqrewDriver']

答案 4 :(得分:0)

您也可以为此使用地图:

list(map(lambda w: int(w[:6]), x))

并使用itertools.islice

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