在列表Python中拆分元素

时间:2018-12-28 06:48:03

标签: python python-3.x

我试图根据一定的长度在列表中拆分元素,这是列表['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14']。谁能帮我从列表中以以下格式检索值:

['Mar 18','Mar 17','Mar 16','Mar 15','Mar 14']

4 个答案:

答案 0 :(得分:1)

一种基于正则表达式的方法,可以处理Apr 1Dec 31之类的情况以及初始列表中的多个元素:

import re

lst = ['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14']

[x for y in lst for x in re.findall(r'[A-Z][a-z]+ \d{1,2}', y)]
# ['Mar 18', 'Mar 17', 'Mar 16', 'Mar 15', 'Mar 14']

答案 1 :(得分:0)

list = ['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14']

span = 2
s = list[0].split(" ")
s = [" ".join(words[i:i+span]) for i in range(0, len(s), span)]
print(s)

对我来说,这会打印

['Mar 18','Mar 17','Mar 16','Mar 15','Mar 14']

取自this answer

答案 2 :(得分:0)

尝试此代码!

您可以通过正则表达式的概念来实现(仅通过python中的import re库即可)

import re

lst = ['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 2']

obj = re.findall(r'[A-Z][a-z]+[ ](?:\d{2}|\d{1})', lst[0])

print(obj)

输出:

[“ 3月18日”,“ 3月17日”,“ 3月16日”,“ 3月15日”,“ 3月14日”,“ 3月2日”]

答案 3 :(得分:0)

您也可以尝试这个

>>> list = ['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14']
>>> result = list[0].split(" ")
>>> [i+' '+j for i,j in zip(result[::2], result[1::2])]

输出

['Mar 18', 'Mar 17', 'Mar 16', 'Mar 15', 'Mar 14']