选择集合的前n个元素

时间:2017-09-13 00:52:38

标签: python

我有一个很大的xl.Application.Visible = False元素要迭代。出于调试目的,我只想迭代第一个,比如说~10。为实现此目的,我已经从set初始化了list,通过set选择了前10个元素,并对生成的[:10]进行了迭代。有更多的pythonic方式吗?

list

2 个答案:

答案 0 :(得分:10)

我使用itertools.islice()。生成整个列表,只是为了访问前几个项目,对我来说似乎很浪费。

for i, val in enumerate(itertools.islice(mySet, 10)):

编辑:

如果您想随机选择(与任意选择)您的十个元素,请尝试random.sample()

for i, val in enumerate(random.sample(mySet, 10)):

答案 1 :(得分:1)

有很多方法可以做到这一点。使用list(set(a))将创建一个列表,这可能需要很长时间,具体取决于您的设置。但是,因为您只需要迭代少量循环,我会使用迭代器和计数器:

count = 0
for elem in iter(mySet):
    count = count + 1
    if count == 10:
        break
    print elem

这可以避免创建长列表的开销,并且使用一些手动代码来控制循环的开销可能是微不足道的。