我试图根据一定的长度在列表中拆分元素,这是列表['Mar 18 Mar 17 Mar 16 Mar 15 Mar 14']
。谁能帮我从列表中以以下格式检索值:
['Mar 18','Mar 17','Mar 16','Mar 15','Mar 14']
答案 0 :(得分:1)
一种基于正则表达式的方法,可以处理Apr 1
或Dec 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']