Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 如何处理列表索引超出范围?_Python_List - Fatal编程技术网

Python 如何处理列表索引超出范围?

Python 如何处理列表索引超出范围?,python,list,Python,List,在下面的代码中,t1是一个包含500000个字符串的列表。我将其拆分,并通过按日期匹配来提取每个字符串开头可用的id tid=[] for t in t1: dc=t.split("\t") if dc[7]=='2015-11-04': tid.append(dc[0]) len(tid) 但我得到了一个错误: -------------------------------------------------------------------

在下面的代码中,
t1
是一个包含500000个字符串的列表。我将其拆分,并通过按日期匹配来提取每个字符串开头可用的id

tid=[]
for t in t1:
   dc=t.split("\t")
   if dc[7]=='2015-11-04':
       tid.append(dc[0])
len(tid)
但我得到了一个错误:

 ---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-807d6fb08067> in <module>
      2 for t in t1:
      3     dc=t.split("\t")
----> 4     if dc[7]=='2015-11-04':
      5         tid.append(dc[0])
      6     del dc[:]

   IndexError: list index out of range
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
2对于t1中的t:
3 dc=t.分割(“\t”)
---->4如果dc[7]=“2015-11-04”:
5 tid.追加(dc[0])
6德尔dc[:]
索引器:列表索引超出范围

是否有其他方法来执行此操作或如何解决此错误?

在访问第n个元素之前,必须检查列表中是否至少有n个元素

tid=[]
    for t in t1:
       dc=t.split("\t")
       
       if len(dc) > 7 and dc[7]=='2015-11-04':
           tid.append(dc[0])
    len(tid)

在访问第n个元素之前,必须检查列表中是否至少有n个元素

tid=[]
    for t in t1:
       dc=t.split("\t")
       
       if len(dc) > 7 and dc[7]=='2015-11-04':
           tid.append(dc[0])
    len(tid)

这意味着dc的长度小于8个元素

这也意味着tc在字符串中没有八个'\t'字符


打印(repr(t))以查看t由什么组成。

这意味着dc的长度小于8个元素

这也意味着tc在字符串中没有八个'\t'字符


执行
打印(repr(t))
以查看t由什么组成。

您始终可以使用
尝试
,除了
代码块来处理此问题

例如:

tid=[]
对于t1中的t:
dc=t.split(“\t”)
尝试:
如果dc[7]=“2015-11-04”:
tid.追加(dc[0])
除索引器外:
通过
莱恩(工业贸易署)

您始终可以使用
try
来处理此问题,但
代码块除外

例如:

tid=[]
对于t1中的t:
dc=t.split(“\t”)
尝试:
如果dc[7]=“2015-11-04”:
tid.追加(dc[0])
除索引器外:
通过
莱恩(工业贸易署)

处理异常是一种方法:

tid=[]
for t in t1:
    dc=t.split("\t")
    try:
        if dc[7]=='2015-11-04':
            tid.append(dc[0])
    except IndexError:
        print("index error")
len(tid)

处理异常是一种方法:

tid=[]
for t in t1:
    dc=t.split("\t")
    try:
        if dc[7]=='2015-11-04':
            tid.append(dc[0])
    except IndexError:
        print("index error")
len(tid)

你能提供一个
t1
的例子吗?请提供预期的结果。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。在错误点之前打印出有问题的值;你怎么会对这些值感到困惑?@Sushil“599958136804507649\tantallyon\t381421483\tfr\tAndroid平板电脑的Witter\tprofile_images/564397209450340352/SYbHdjhm_normal.jpeg\tSun\t2015-05-17\t55341\t1431876141\tRT DanielPilotte:HONTEÀCHRISTIANE TAUBIRA la garde des sots Qui des de plus en en plus比赛…”这是t1中的一个字符串。这是列表形式还是字符串形式?@Sushil是的,它是字符串形式,这是一个字符串。您可以提供
t1
的示例吗?请提供预期的示例。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。在错误点之前打印出有问题的值;你怎么会对这些值感到困惑?@Sushil“599958136804507649\tantallyon\t381421483\tfr\tAndroid平板电脑的Witter\tprofile_images/564397209450340352/SYbHdjhm_normal.jpeg\tSun\t2015-05-17\t55341\t1431876141\tRT DanielPilotte:HONTEÀCHRISTIANE TAUBIRA la garde des sots Qui des de plus en en plus比赛…”这是T1中字符串的一个,是列表形式还是字符串形式?@Sushil是的,它是字符串形式,这是一个字符串