Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问列表python-索引的第n个元素不存在错误_Python_List - Fatal编程技术网

访问列表python-索引的第n个元素不存在错误

访问列表python-索引的第n个元素不存在错误,python,list,Python,List,我有以下形式的数据: list_of_numbers = [[8, 10], [10, 8, 1, 0], [6], [4, 0, 1, 2, 3], [12]] 我试图提取此列表的第一个和第二个元素,如下所示: [n[0] for n in list_of_numbers] 这对第一个元素很有效,但是,当我尝试以相同的方式提取第二个元素时,会出现一个错误(IndexError:list index out range)。我意识到这是因为列表中的一些列表没有第二个元素。但是,只要第二个元素存

我有以下形式的数据:

list_of_numbers = [[8, 10], [10, 8, 1, 0], [6], [4, 0, 1, 2, 3], [12]]
我试图提取此列表的第一个和第二个元素,如下所示:

[n[0] for n in list_of_numbers]
这对第一个元素很有效,但是,当我尝试以相同的方式提取第二个元素时,会出现一个错误(IndexError:list index out range)。我意识到这是因为列表中的一些列表没有第二个元素。但是,只要第二个元素存在,我就需要提取它,如果它不存在,则需要NaN/missing。如何在代码中实现这一点


谢谢

您可以使用条件列表理解来检查内部列表的长度,并且仅当它们超过某个长度时才对它们进行索引:

index = 1
[i[index] if len(i)>index else float('nan') for i in list_of_numbers]
# [10, 8, nan, 0, nan]

您可以使用条件列表理解来检查内部列表的长度,并且仅当它们超过某个长度时才为它们编制索引:

index = 1
[i[index] if len(i)>index else float('nan') for i in list_of_numbers]
# [10, 8, nan, 0, nan]

当列表不够长时,此解决方案将放置
None
。你可以用你喜欢的任何东西替换它(例如,
np.nan

解决方案:

i = 1
[None if len(n) <= i else n[i] for n in list_of_numbers]

当列表不够长时,此解决方案将放置
None
。你可以用你喜欢的任何东西替换它(例如,
np.nan

解决方案:

i = 1
[None if len(n) <= i else n[i] for n in list_of_numbers]
可能的重复可能的重复