python - Python 两个 For 循环中的两个列表
问题描述
我这里有两个清单:
list1 = [u'2018-05-06T15:53:05.000-0400', '2018-05-06T17:53:05.000-0400']
list2 = [u'2018-05-06T15:32:24.000-0400', u'2018-05-06T15:32:29.000-0400', u'2018-05-06T15:32:36.000-0400', u'2018-05-06T15:53:05.000-0400', u'2018-05-06T16:42:41.000-0400', u'2018-05-10T00:16:12.000-0400', u'2018-05-10T00:16:23.000-0400', u'2018-05-12T17:37:42.000-0400']
我正在尝试比较两个列表中的元素,并返回 list1 中的元素 0 和 list2 中的元素 1 不同的最小值,例如:
for value1 in list1:
value1 = datetime.strptime(value1, '%Y-%m-%dT%H:%M:%S.000-0400')
for value2 in list2:
value2 = datetime.strptime(value2, '%Y-%m-%dT%H:%M:%S.000-0400')
if value1 < value2:
value3 = value2 - value1
list3.append(value3)
print list3
打印 list3 给我:
[datetime.timedelta(0, 2976), datetime.timedelta(3, 30187), datetime.timedelta(3, 30198), datetime.timedelta(6, 6277), datetime.timedelta(3, 22987), datetime.timedelta( 3, 22998), datetime.timedelta(5, 85477)]
一切都在同一个列表中。在这里list3[0]
,我可以得到第一个元素的最小值,但是如果我在 list1 中有元素 3,list1
我怎么能得到第二个元素的最小值并循环呢?list3[3]
我想将列表中的第一个元素list1
和第二个元素的比较结果分开,请让我知道如何实现这一点,非常感谢!
解决方案
如果我理解正确,您可以将时间增量分隔在不同的列表中,然后仅用于min
获取最小值。
使用您自己的代码:
list3=[]
for value1 in list1:
value1 = datetime.strptime(value1, '%Y-%m-%dT%H:%M:%S.000-0400')
aux_list = []
for value2 in list2:
value2 = datetime.strptime(value2, '%Y-%m-%dT%H:%M:%S.000-0400')
if value1 < value2:
value3 = value2 - value1
aux_list.append(value3)
list3.append(aux_list)
这样,您list3
就掌握了从的每个元素list1
到所有元素的差异list2
>>> print(list3)
[[datetime.timedelta(0, 2976), datetime.timedelta(3, 30187), datetime.timedelta(3, 30198), datetime.timedelta(6, 6277)],
[datetime.timedelta(3, 22987), datetime.timedelta(3, 22998), datetime.timedelta(5, 85477)]]
min(list[0])
然后,您可以使用和第二项获得与第一项的最小差异min(list[1])
请注意,如果您有
l1 = [datetime.strptime(x, '%Y-%m-%dT%H:%M:%S.000-0400') for x in list1]
l2 = [datetime.strptime(x, '%Y-%m-%dT%H:%M:%S.000-0400') for x in list2]
您的整个代码可以使用列表理解写在一行中:
k = [min([v2 - v1 for v2 in l2 if v2>v1]) for v1 in l1]
存在l1
和l2
你的datetime
对象列表。这产生
0:49:36 # k[0]
3 days, 6:23:07 # k[1]
推荐阅读
- python - 使用一行 bash 脚本安装后从 Ubuntu 中删除和清除 Rasa-x
- vba - 如何使用 Microsoft Office Profession Plus 2013 在 MarkAsTask 项目上创建提醒?
- javascript - site.webmanifest 文件的主要用途是什么?
- php - 从数组中对损坏的系列进行分组
- ios - 添加到导航的 UIBarButton 在 iOS 13 上不起作用
- string - 合并两列,同时消除熊猫数据框中的重复字符串
- bokeh - WordCloud2 与 output_notebook() 有错误
- python - 戴帽子的猫-挑战。Python
- php - PHP在访问mysql中的列时遇到问题
- reactjs - 使用 fetch 请求调用 Amazon Web Services CloudSearch 时出现 CORS 问题