首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化循环的结果

序列化循环的结果
EN

Stack Overflow用户
提问于 2016-03-30 21:03:11
回答 1查看 94关注 0票数 0

代码片段:

代码语言:javascript
复制
import xlrd

wb = xlrd.open_workbook("links.xls")
sh = wb.sheet_by_index(0)

count = 0
for row in range(1, sh.nrows):
    val = sh.row_values(row)


    if (val[4]) != 2:
        print 'id',str(int(val[0])), 'value', str(int(val[1])) + "-" + str(int(val[2]))

    else:
        print 'id',str(int(val[0])), 'value', str(int(val[1])) + "-" + str(int(val[2]))
        print 'id',str(int(val[0])), 'value', str(int(val[2])) + "-" + str(int(val[1]))

links.xls

代码语言:javascript
复制
   id From To   Len  Permlanes
    1   1   7   350   9
    2   1   8   460   3
    3   1   3   490   2
    4   2   9   220   2
    5   2   7   540   1
    6   2   8   590   1
    7   3   6   250   1
    8   4   4   290   6
    9   4   9   570   1
    10  4   2   430   1

输出:

代码语言:javascript
复制
id 1 value 1-7
id 2 value 1-8
id 3 value 1-3
id 3 value 3-1
id 4 value 2-9
id 4 value 9-2
id 5 value 2-7
id 6 value 2-8
id 7 value 3-6
id 8 value 4-4
id 9 value 4-9
id 10 value 4-2

预期产出:

代码语言:javascript
复制
id 1 value 1-7
id 2 value 1-8
id 3 value 1-3
id 4 value 3-1
id 5 value 2-9
id 6 value 9-2
id 7 value 2-7
id 8 value 2-8
id 9 value 3-6
id 10 value 4-4
id 11 value 4-9
id 12 value 4-2

上面的代码是我正在处理的一个项目的一个小描述。当excel文件中的permlanes fields is 2被写入时,value会以交替模式写两次,即1-3 and 3-1,但是id输出并不像预期的那样。有人能帮助我调整代码,使id output是串行的(就像预期的输出一样),而不是现在输出中出现的那样。我使用excel文件元素列表的索引进行循环的尝试显然不起作用,因为无法访问excel文件的元素。

谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 21:12:04

我看到您有未使用的count变量,所以我使用它来跟踪输出索引,每次打印新id时都会增加它。

代码语言:javascript
复制
import xlrd

wb = xlrd.open_workbook("links.xls")
sh = wb.sheet_by_index(0)

count = 1
for row in range(1, sh.nrows):
    val = sh.row_values(row)

    if (val[4]) != 2:
        print 'id',str(int(count)), 'value', str(int(val[1])) + "-" + str(int(val[2]))
    else:
        print 'id',str(int(count)), 'value', str(int(val[1])) + "-" + str(int(val[2]))
        count+=1
        print 'id',str(int(count)), 'value', str(int(val[2])) + "-" + str(int(val[1]))
    count+=1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36319687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档