如何在python中将元组转换为字符串并将其用于strptime?

How to convert a tuple into a string in python and use it into strptime?

我在 Date[] 中有一个元组列表: [[2017, 1, 1], [2017, 1, 1], . . .

如何将它们中的每一个都转换成字符串?

X=[]
Y=[]
for i in range(len(Date)):
    if(Date[i][0]==2017):
        str=''.join(Date[i])
        X.append(datetime.datetime.strptime(str, '%G %V %u').date())
        Y.append(Val[i])

strptime 需要一个 str 来转换,如果我在那里添加 Date[i],它说它接受 str 而不是元组。我尝试通过 str=''join(Date[i]) 转换它,但它说 strptime 只接受 str 而不是 int。这似乎是什么问题?

无需使用 strptime,您可以将您的值按原样传递给 datetime.datetime

X.append(datetime.datetime(*Date[i]).date())

您的代码还需要一些改进,变量名应该小写,而不是遍历范围,您可以直接遍历 dateval.

的值
date = [[2017, 1, 1], [2017, 1, 1]]
val = [0, 1]

x = []
y = []
for i, v in zip(date, val):
    if i[0] == 2017:
        x.append(datetime.datetime(*i).date())
        y.append(v)

只需根据您的三个参数创建一个 datetime 实例

dates = [[2017, 1, 1], [2017, 1, 1]]
X = []
for date in dates:
    if date[0] == 2017:
        dt = datetime.datetime(*date)
        X.append(dt.strftime('%G %V %u'))

您可以直接初始化 datetime.date 对象:

X.append(datetime.date(year=Date[i][0], month=Date[i][1], day=Date[i][2]))

甚至

X.append(datetime.date(*Date[i]))

必须通过 map 将 Date 映射到 str,然后用空格连接它才解决了这个问题!

X=[]
Y=[]
count=00
for i in range(len(Date)):
    if(Date[i][0]==2017):
        if (count>23):
            count=00
        sstr=' '.join(map(str,Date[i]))
        X.append(datetime.datetime.combine(datetime.datetime.strptime(sstr, '%G %V %u').date(),datetime.time(count,00)))
        #X.append(Date[i])
        Y.append(Val[i])
        count=count+1