如何从列表

时间:2017-03-14 14:38:23

标签: python pyspark

我在pyspark中有一个列表,其中列表看起来像

result = ['2016-12-11T04:12:58.797', '2016-12-11T03:50:28.253', '2016-12-11T03:49:52.613', '2016-12-11T03:37:49.857']

我必须从列表中仅获取年份。我试过的是

resultYear = result[0:4]

但是,我知道这不是解决方案。我是python和pyspark的新手,所以我需要帮助。感谢。

2 个答案:

答案 0 :(得分:3)

要回答标题中的问题,您只需遍历列表并获取列表中每个元素的前4个字母:

for element in result:
    year = element[:4] 
    # do what you want with this, e.g print it
    print(year)

>>>2016
>>>2016
...

但更简洁的方法是列表理解:

r = [el[:4] for element in result]
# returns a list of years

print(r)
>>> ['2016', '2016',...]

答案 1 :(得分:2)

使用字符串拆分功能并将字符串拆分为' T'发生并使用字符串之前的字符串' T'
INPUT

result = ['2016-12-11T04:12:58.797', '2016-12-11T03:50:28.253', '2016-12-11T03:49:52.613', '2016-12-11T03:37:49.857']
result = [(r.split('-')[0]) for r in result]

<强>输出

['2016', '2016', '2016', '2016']