在python中拆分for循环中的字符串

2024-09-29 00:16:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图遍历表中的行列表,并修改其中一列中的字符串:

# python 2.7
import csv
import re

with open('root_diff.txt', 'rU') as dmr:
    coordinates_tsv = csv.reader(dmr, delimiter='\t')
    coordinates_list = [row for row in coordinates_tsv]

    for row in coordinates_list:
        cut = re.split(':|-|r', row[3])
        print cut[1]

但我得到了以下错误: IndexError: list index out of range

row[3]中的字符串如下:chr1:594572-598657。 我想把它拆分成这样:['ch', '1', '594572', '598657'],然后用第二个和第三个数字做一些事情。在


Tags: csv字符串inimportre列表fortsv
1条回答
网友
1楼 · 发布于 2024-09-29 00:16:58

row[3]必须至少有一个不包含要拆分的字符的值。在

要调试,请捕获IndexError并打印cut和/或{}以查看发生了什么:

try:
    print cut[1]
except IndexError:
    print '  unexpected input  ', row[3]

如果这是标题,请用next()跳过它:

^{pr2}$

注意,理论上,也可能是前面的行引发了这个异常;您没有在您的帖子中共享回溯。空行或列数较少的行将导致IndexErrorrow[3]。例如,空行给出一个空列表。在

相关问题 更多 >