Python 如何检查列表中是否存在索引,如果不存在,如何使用默认值?

Python 如何检查列表中是否存在索引,如果不存在,如何使用默认值?,python,list,python-2.7,Python,List,Python 2.7,我在Python脚本中声明了以下词典: my_dictionary = {'course': row[0], 'vars': [ {'name': 'FIRST_NAME', 'content': row[1]}, {'name': 'COURSE_NAME', 'content': row[2]}, {'n

我在Python脚本中声明了以下词典:

    my_dictionary = {'course': row[0],
                'vars': [
                         {'name': 'FIRST_NAME', 'content': row[1]},
                         {'name': 'COURSE_NAME', 'content': row[2]},
                         {'name': 'HOLE_COUNT', 'content': row[3]},
                         {'name': 'SHORTNAME', 'content': row[4]},
                         {'name': 'SSS', 'content': (5 in row: row[5])},
                         {'name': 'COURSE_RECORD', 'content': (6 in row: row[6])},
                        ]
               }
我正在绞尽脑汁研究语法,试图检查列表项是否存在:

                         {'name': 'SSS', 'content': (5 in row: row[5])},
                         {'name': 'COURSE_RECORD', 'content': (6 in row: row[6])},
在这一点上可以进行检查吗

我的语法不正确,因为我遇到以下错误:
语法错误:无效语法

以下是如何查看列表中是否有第五项。这是来自交互式控制台python的

从列表开始,我可以看到它有多少元素:

>>> my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> len(my_list)
7
它有七个要素。如果我尝试从零开始获取第八项记忆标记,我将得到一个错误:

>>> my_list[0]    # Looks good
'a'
>>> my_list[8]    # oh no, the eight item doesn't exist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
试试这个:

my_dictionary = {'course': row[0],
                'vars': [
                         {'name': 'FIRST_NAME', 'content': row[1]},
                         {'name': 'COURSE_NAME', 'content': row[2]},
                         {'name': 'HOLE_COUNT', 'content': row[3]},
                         {'name': 'SHORTNAME', 'content': row[4]},
                         {'name': 'SSS', 'content': (row[5] if len(row)>5 else "")},
                         {'name': 'COURSE_RECORD', 'content': (row[6] if len(row)>6 else "")},
                        ]
               }

在Python3中,这会更容易。您应该记住python2已经达到了eol

这对我来说很管用

my_dict={'test': ((row[5],'')[len(row)>5])}

如果您想将值计算为布尔值,只需在第[5]行中使用5即可。@CDJB感谢您的评论。我要寻找的是,如果数组中设置了,那么就使用它。什么是行-列表还是其他字典?如果它是一个字典,那么第5行检查行中是否包含键5,但它是一个列表,第5行将告诉您行中是否包含值为5的元素,@Błotosmętek感谢您的评论。行是一个列表。行中的5将返回布尔值,对吗?是否要查看列表中是否存在值5,或者是否要查看列表中是否有第五项?
my_dict={'test': ((row[5],'')[len(row)>5])}