当我运行代码时,我得到以下输出
如何打印输出?
static void Main(string[] args)
{
// start all async tasks in parallel.
var tasks = GetEvents().Select(GetEventDetailsAsync);
// wait for them all to complete. normally you should use await instead of Wait,
// but you can't because you're in the main method of a console app.
Task.WhenAll(task).Wait();
}
static IEnumerable<Event> GetEvents()
{
// build a list of whatever metadata is needed to do your async work.
// do NOT do any actual async work here.
}
async static Task<EventDetailed> GetEventDetailsAsync(Event e)
{
// do all async work here, use await as needed,
// but only for one event (no loops).
}
答案 0 :(得分:1)
一般来说:
print(list(firstn(n)))
确保您的发电机不是无限的。如果您不确定,请使用以下内容:
import itertools as it
print(list(it.islice(firstn(n), 100)))
打印前100个元素。
答案 1 :(得分:0)
有不同的方法,但基本上你必须遍历迭代器。最简单的方法可能是使用列表理解:
print(list(firstn(3)))
但是如果你希望你能写一个for
循环来做到这一点(每行得到一个元素):
for e in firstn(3):
print(e)
然而,应该知道迭代生成器会消耗它并且如果你没有检索新生成器的方法(例如,如果你将生成器作为函数调用的参数),你将不得不存储值 - 数组中的fx:
l = list(firstn(3))
for e in l:
print(e)
for e in l:
do_something(e)