1

我想沿文本文件中的列迭代脚本,但忽略前 5 列。

目前,我的脚本逐行运行一个文本文件,评估第 6 列中的值。我希望它运行评估第 6 列、第 7 列、第 8 列等的所有行,我不想评估每一列脚本读取文件时的每一行,但要遍历整个文件评估列 n,然后对列 n + 1 重复

目前我有简单的:

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in row:

但我想指定它忽略前 5 列,因为它们不是目标(但仍需要作为文件中的信息)。

我想像 for col in row for range 6:20 这样的东西可能会起作用,但我是一个 python 初学者,不知道在 python 中表达这个的正确方法。如果问题太混乱,请告诉我如何澄清这个问题。

预先感谢您的帮助。

最好的,

鲁巴尔

4

3 回答 3

5

如果您有一个列表row,那么row[a:b]是从元素编号a开始到但不包括元素编号的元素范围b

例如:

row = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']

print row[2:4]

这个的输出将是

['gamma', 'delta']

所以在一个循环中你可以写:

for col in row[6:20]:
    foo()

或者,循环到列表的末尾

for col in row[6:]:
    foo()
于 2012-06-03T12:36:18.313 回答
4
for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in fields[5:]:
        # process
于 2012-06-03T12:33:17.923 回答
2

无需复制

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for index in range(5, len(fields)):
        #do_smth with fields[index]
于 2012-06-03T12:32:42.160 回答