![](/img/trans.png)
[英]Python IndexError: list index out of range - 2d list iteration
[英]IndexError: list index out of range and python(With array 2D)
title_list = [['determined', 'by', 'saturation', 'transfer', '31P', 'NMR'], ['Interactions', 'of', 'the', 'F1', 'ATPase', 'subunits', 'from', 'Escherichia', 'coli', 'detected', 'by', 'the', 'yeast', 'two', 'hybrid', 'system']]
pc_title_list = [[]]
print(title_list[1][0].isalpha() == True)
for i in range(len(title_list)):
for j in range(len(title_list[i])):
if (title_list[i][j].isalpha() == True):
pc_title_list[i].append(title_list[i][j].lower())
现在我要坚持这个(IndexError:列表索引超出范围)。
len()
是从 1 开始的,而range()
是从 0 开始的,所以如果你这样做len() - 1
它应该可以工作,(但你不需要做所有这些,你可以for i in title_list
) . 此外,使用此方法您似乎丢失了很多数据,请参阅下面的列表理解选项:
title_list = [['determined', 'by', 'saturation', 'transfer', '31P', 'NMR'],
['Interactions', 'of', 'the', 'F1', 'ATPase', 'subunits', 'from',
'Escherichia', 'coli', 'detected', 'by', 'the', 'yeast', 'two',
'hybrid', 'system']]
pc_title_list = [[]]
print(title_list[1][0].isalpha() == True)
for i in range(len(title_list) - 1):
for j in range(len(title_list[i]) - 1):
if (title_list[i][j].isalpha() == True):
pc_title_list[i].append(title_list[i][j].lower())
print('for loop: ', pc_title_list) # looks like items are missing
# list comprehension version, much more concise
pc_title_list2 = [[j.lower()
for j in i
if j.isalpha()]
for i in title_list]
print('list comprehension: ', pc_title_list2)
Output:
True
for loop: [['determined', 'by', 'saturation', 'transfer']]
list comprehension: [['determined', 'by', 'saturation', 'transfer', 'nmr'], ['interactions', 'of', 'the', 'atpase', 'subunits', 'from', 'escherichia', 'coli', 'detected', 'by', 'the', 'yeast', 'two', 'hybrid', 'system']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.