Skip to main content
 首页 » 编程设计

Python迭代器问题

2025年05月04日11pengyingh

我有这个列表:

names = ['john','Jonh','james','James','Jardel'] 

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

我想不出使用 Python 的 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