Python迭代器问题

hdx*_*hdx 1 python for-loop for-in-loop

我有这个清单:

names = ['john','Jonh','james','James','Jardel']
Run Code Online (Sandbox Code Playgroud)

我希望循环遍历列表并在同一次迭代中处理具有不区分大小写匹配的连续名称.因此,在第一次迭代中,我会用'john'和'John'做一些事情,我希望下一次迭代从'james'开始.

我想不出用Python的for循环来做这个的方法,有什么建议吗?

Dav*_*d Z 6

这将是一个for itertools.groupby,它将列表或其他可迭代的连续相等元素分组.你可以指定一个函数来进行比较,这样,在你的情况下,不同情况下的相同名称仍然可以算作同一个东西.

for k, g in itertools.groupby(names, lambda s: s.lower()):
    # Example: in the first iteration:
    #  k = "john"
    #  g = an iterator over ["john", "John"]
    # Process them as you like
Run Code Online (Sandbox Code Playgroud)