【问题标题】:How to split data and save min value of startTime to variable如何拆分数据并将 startTime 的最小值保存到变量
【发布时间】:2014-10-31 23:42:16
【问题描述】:

我不想创建可以从 csv startTime 和 endTime 保存到变量的脚本,例如我有不同的 startTime 值(11:59:12、11:59:19、11:59:22)和不同的endTime 值(12:59:12、12:59:19、12:59:22),我想将 startTime 存储到仅最低的变量,该变量比其他变量早开始,而 endTime 最后结束。 所以从这个例子中必须存储到变量 startTime = 11:59:12 和 endTime = 11:59:22。 你能告诉我我要做什么吗?我的脚本现在看起来像这样:

import csv
import datetime
import time


data = list(csv.reader(open('C:\\Documents and Settings\\Lemur\\Desktop\\TestResults.csv', 'r')))

startTimeWithoutCp = ""

for x in xrange(4, 13):
   cpStartTime = (data[x][6])+ ":" + " " + (data[x][12][10:19])
   cpEndTime =   (data[x][6])+ ":" + " " + (data[x][13][10:19])
   startTimeWithoutCp += (data[x][12][11:19])
#print("CP Start Times is: ", cpStartTime)
#print("CP End Time is: ", cpEndTime)
print(startTimeWithoutCp)

# The output results looks like that:
# 11:59:0811:59:1211:59:1911:59:2211:59:2811:59:3211:59:3711:59:4211:59:47

您能告诉我,我如何正确拆分这个结果并从这个列表中获得最小的价值。谢谢!

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    首先,我认为您应该将时间点存储在list 中。将它们连接成一个字符串(就像你为startTimeWithoutCp 做的那样)使得很难恢复原来的时间。在各个时间点上,您可以使用可以对字符串/字符进行排序的事实:

    >>> a = '11:20:02'
    >>> b = '04:34:12'
    >>> c = '04:34:14'
    >>> sorted([a, b, c])
    ['04:34:12', '04:34:14', '11:20:02']
    >>> min([a, b, c])
    '04:34:12'
    

    因此,如果您的时间点在列表中,您可以使用 min()max()。 您可以使用 Python 的切片符号将长字符串拆分为多个片段:

    d = '11:59:0811:59:1211:59:1911:59:2211:59:2811:59:3211:59:3711:59:4211:59:47'
    print([d[i:i + 8] for i in range(0, len(d), 8)])
    

    【讨论】:

    • 我明白这一点,但你能告诉我如何转换:["11:59:0811:59:1211:59:1911:59:2211:59:2811:59:3211 :59:3711:59:4211:59:47"] 到 ["11:59:08", "11:59:12", "11:59:19", "11:59:22", "11 :59:28”、“11:59:32”、“11:59:37”、“11:59:42”、“11:59:47”] ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2021-02-21
    • 2019-08-18
    相关资源
    最近更新 更多