【发布时间】:2014-05-16 01:32:30
【问题描述】:
谁能解释一下为什么对从迭代器 X 生成的列表进行迭代与对迭代器 X 进行迭代相比会产生不同的结果?
换句话说 [x for x in list(IteratorObject)] != [x for x in IteratorObject]
>>> randoms = [random.randrange(10) for i in range(100)]
>>> [ (x[0],list(x[1])) for x in itertools.groupby(sorted(randoms))]
[(0, [0, 0, 0, 0, 0, 0, 0, 0]), (1, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]), (2, [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]), (3, [3, 3, 3, 3, 3, 3]), (4, [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]), (5, [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), (6, [6, 6, 6, 6, 6, 6, 6, 6, 6]), (7, [7, 7, 7, 7, 7]), (8, [8, 8, 8, 8, 8, 8, 8]), (9, [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9])]
>>> [ (x[0],list(x[1])) for x in list(itertools.groupby(sorted(randoms)))]
[(0, []), (1, []), (2, []), (3, []), (4, []), (5, []), (6, []), (7, []), (8, []), (9, [9])]
>>> sys.version
'3.3.3 (default, Dec 2 2013, 01:40:21) \n[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)]'
【问题讨论】:
-
你的预期输出是什么
-
为了清楚起见,您能否将您的作业提供给
randoms? -
第一个结果是预期的。我添加了一个字符串来解释什么是随机数。
标签: python python-3.x iterator