我是Python新手,遇到了一个问题。我有一个元组作为变量。当我运行下面的脚本来获取特定的值时,我得到一个错误:
row = ('ip-172-17-11-22', 'i-050303gfredsgda', None, None, 'Linux Server', None, None)
for i in row:
if i[4] == 'Linux Server':
print(i[2])
else:
print("no value")
下面是错误:
no value
no value
Traceback (most recent call last):
File "test-data.py", line 4, in <module>
if i[4] == 'Linux Server':
TypeError: 'NoneType' object is not subscriptable
2条答案
按热度按时间ar5n3qh51#
yfwxisqw2#
实际上,你想做的是,在伪代码中:
问题是这个“元素在2个索引之前”:你不能使用基于你所在的元素的相对位置。解决方案是使用
enumerate
,这样就可以得到元素及其索引:注意:如果“Linux Server”的位置低于2,则
row[i-2]
可能会产生意外的结果,因为使用负索引对应于从元组(或列表)的末尾向后计数。例如:在您的示例中,
因此,处理i-2为负的情况可能是有用的。