Skip to main content
 首页 » 编程设计

python之提取列表中无序的项目

2025年05月04日15zfyouxi

我想从列表中提取一些项目并将它们保存在子列表中,但项目没有按顺序排列。例如以下列表:

F = ['mary', 'zari', 'ali', 'fari','Thaghi', 'zagi', 'shad', 'sila','bita'] 
A = [] 
B = [] 
C = [] 

我想将项目 1 放入 A,将项目 2 放入 B,将项目 3 放入 C。然后将项目 4 放入 A,将项目 5 放入 B,将项目 6 放入 C。然后将项目 7 放入 A,将 8 放入 B,然后将 9在 C 中,我编写了以下代码:

i=0 
for i in range(len(F)):   
    A.append(F[i]) 
    B.append(F[i+1]) 
    if i < range(len(F)):  
        i=i+1 

但是输出是:

A.append(F[i]) 
B.append(F[i+1]) 
     if i < range(len(F)): 
         i=i+1 
 
IndexError: list index out of range.  

请您参考如下方法:

您的代码中的问题是当i 到达F 的末尾时没有F[i+1]。使用列表理解是解决此问题的更好方法:

F = ['mary', 'zari', 'ali', 'fari','Thaghi', 'zagi', 'shad', 'sila', 'bita'] 
A = [item for i, item in enumerate(F) if i % 3 == 0] 
B = [item for i, item in enumerate(F) if i % 3 == 1] 
C = [item for i, item in enumerate(F) if i % 3 == 2] 

结果是:

>>> A 
['mary', 'fari', 'shad'] 
>>> B 
['zari', 'Thaghi', 'sila'] 
>>> C 
['ali', 'zagi', 'bita']