如何从for循环中获取多个值?

wid*_*get 1 python for-loop set unique-values

我有一个列的记录列表,列表被命名为日期.我试图从列表中获取不同的日期.该列表有许多重复日期,例如1/1/2010,1/1/2010,....... 但也有不同的日期.但如果我使用:

for date in dates: ....
Run Code Online (Sandbox Code Playgroud)

它为每个日期重复循环(无论它是否相同),而不是不同的日期.我怎么能告诉它呢:

for differentdate in dates:... 
Run Code Online (Sandbox Code Playgroud)

语言是Python !!

Raf*_*ler 5

for date in set(dates):
Run Code Online (Sandbox Code Playgroud)

set()从另一个集合中的独特元素中创建一个集合.注意:这可能不会保留原始列表的顺序,因此如果您需要保留该顺序,请使用@ GregHewgill的答案.


Gre*_*ill 5

您可以使用itertools模块按日期分组.例如:

>>> import itertools
>>> a = ["aaa", "bbb", "bbb", "ccc"]
>>> for k, g in itertools.groupby(a):
...   print(k)
... 
aaa
bbb
ccc
Run Code Online (Sandbox Code Playgroud)

这保留了元素的原始顺序a(这对您来说很重要).在循环内部,g是一个生成器,它生成一个包含该键的每个元素的序列.有关itertools.groupby更多信息,请参阅文档.