如何在forloop期间读取那些元组并转换为int类型?

How to read those tuple and convert int type during forloop?

我想在forloop中将tuple类型的数据转换成int类型。 如何读取那些元组数据? (因为我想将这些数据转换成 datetime )

>>> print data
((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))

我有 5 个元组数据(unixtime),这就是我想要做的。

for i in data:
    con = int(data[i][0])
    dt = datetime.fromtimestamp(con // 1000)
    s = dt.strftime('%Y-%m-%d %H:%M:%S')
    print(s)

我认为那些元组数据是 ([0][0],[1][0],[2][0],[3][0],[4][0]) 对吗?

有什么问题?我不太了解python。

i 已经是一个子元组,而不是 data 中的索引。所以它足够做:

from datetime import datetime

data = ((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))

for i in data:
    dt = datetime.fromtimestamp(i[0] // 1000)
    s = dt.strftime('%Y-%m-%d %H:%M:%S')
    print(s)    

结果是:

2015-02-25 00:22:11
2015-02-25 00:22:11
2015-02-25 00:22:11
2015-02-25 00:22:12
2015-02-25 00:22:12

您有一个包含单个元素元组的元组。你可能想要这样的东西:

from datetime import datetime

data = ((1424794931452.0,), (1424794931645.0,), (1424794931821.0,),(1424794932014.0,), (1424794932189.0,))

for elem in data:
    con = int(elem[0])
    dt = datetime.fromtimestamp(con // 1000)
    s = dt.strftime('%Y-%m-%d %H:%M:%S')
    print(s)

输出:

2015-02-24 11:22:11
2015-02-24 11:22:11
2015-02-24 11:22:11
2015-02-24 11:22:12
2015-02-24 11:22:12

我认为问题在于 i 是数据中的元素,而不是索引。所以你应该这样做:

for i in data:
    con = int(i[0])
    dt = datetime.fromtimestamp(con // 1000)
    s = dt.strftime('%Y-%m-%d %H:%M:%S')
    print(s)

当您执行 for x in y 语法时,x 会在每次迭代时分配给序列的元素。要枚举索引,您必须使用内置函数 enumerate,其中 returns 索引和项目。

我会这样做:

for con in (int(d[0]) for d in data):
    do_something_with(con)