【发布时间】:2018-05-04 10:08:32
【问题描述】:
我正在尝试做类似的事情:
groups = groupby(all_data, key=itemgetter(1))
result = []
for k,g in groups:
gg = list(g)
count = len(gg)
v = gg[0][3:] #No empty groups, right?
hosts = ";".join([x[0] for x in gg])
result.append(v + (count,) + (hosts,))
我讨厌循环。 ;) 有没有机会通过理解来做到这一点?问题是 g 是迭代器,而不是列表,我不知道如何将其转换为理解列表。
【问题讨论】:
-
也许您正在寻找类似 @987654322@ 的东西,但是如果您提供您的输入和预期的输出会更好。
-
这是太多的代码,无法放入列表理解中。为什么您曾经会尝试将 8(!) 行代码转换为单行代码?如果您想要一种更好的 方式来编写此循环,请寻求一种更好的方式来编写此循环。不要要求列表理解,因为这是编写此循环的更糟糕的方式。
标签: python list iterator itertools