【发布时间】:2018-08-10 12:44:43
【问题描述】:
我如何使用列表理解来编写这个?我不知道如何解开 il list-comprehension。
for line in f:
t1, t2, t3 = line.split(" ")
self._list.append(Time(t1,t2,t3))
我试过了
self._tasks = [Time(line.split(' ')[0], line.split(' ')[1], line.split(' ')[2]) for line in f]
有没有更好的办法?
【问题讨论】:
-
[Time(*line.split(' ')) for line in f] -
@MartijnPieters 的答案是完美的,但如果您出于某种原因确实需要显式命名您的中间参数,您可以使用如下内容:
[Time(t1,t2,t3) for t1,t2,t3 in (line.split() for line in f)] -
谢谢解答。使用星号可以转换 srt ti int 吗?我想用 int 而不是 str 创建时间
-
@Tomonaga:你没有在你的问题中提到这一点。然后使用
Time(*map(int, line.split()))(如果您在空格上拆分,则无需传入参数)。
标签: python file list-comprehension