Py学习  »  Python

如何在python中从列表中获取值[closed]

bhavesh • 5 年前 • 1364 次点击  

我有一份口述清单如下

result = [{'start_date': datetime.date(2019, 1, 20)}, {'start_date': datetime.date(2019, 1, 21)}, {'start_date': datetime.date(2019, 1, 22)}]

我的期望值

result = ['2019-1-20', '2019-1-21', '2019-1-22']
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49925
 
1364 次点击  
文章 [ 3 ]  |  最新文章 5 年前
Taohidul Islam
Reply   •   1 楼
Taohidul Islam    6 年前

试试这个:

result = [{'start_date': datetime.date(2019, 1, 20)}, {'start_date': datetime.date(2019, 1, 21)}, {'start_date': datetime.date(2019, 1, 22)}]
result_list = [str(i.get("start_date")) for i in result]
Sigve Karolius
Reply   •   2 楼
Sigve Karolius    6 年前

这是一个很好的例子 map 功能或 list-comprehension 使用效果好。

import datetime 
result = [{'start_date': datetime.date(2019, 1, 20)}, {'start_date': datetime.date(2019, 1, 21)}, {'start_date': datetime.date(2019, 1, 22)}]

# Map function
res = map(lambda d: str(d['start_date']), result)
print(res)

# List-comprehension
res = [ str(d['start_date']) for d in result ]
print(res)
hyperTrashPanda
Reply   •   3 楼
hyperTrashPanda    6 年前

你需要像

mylist = []
for res in result:
    mylist.append(res['start_date'])

这将从 start_date 词典输入 datetime 格式化,以便您可以继续使用它们 日期时间 -类似的功能。如果希望结果为字符串,可以将此示例中的最后一行替换为

mylist.append(res['start_date'].isoformat())
# >>> print(mylist)
# ['2019-01-20', '2019-01-21', '2019-01-22']