我想从列表中提取一些项目并将它们保存在子列表中,但项目没有按顺序排列。例如以下列表:
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']
关于python - 提取列表中无序的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37256332/