如何解决Python:复合运算符“+=”在for语句中工作两次
我有一些数据作为嵌套列表,如下所示:
(很抱歉,StackOverFlow 拒绝了我的原始帖子,所以我将其上传为图片。)
每个内部列表的第三个值是一个从0开始的整数值,
但我想通过加 1 将其转换为从 1 开始。
这些是我用于此目的及其结果的第一个代码。
代码:
readlocation = (0,2,1,28) + tuple(list(range(7,13))) + (18,)
# print(readlocation) # (0,7,8,9,10,11,12,18)
print("이름","출현연도","출현지역","혈연","출생연도","지력","무력","매력","의리","인덕","야망","상성")
for i in list(range(0,10)) : # Test
# for i in list(range(0,len(general_offset_init) - 2)) : # The last two rows are empty
print(bytes(general_data[i][31:46]).decode('utf-8').ljust(15)," ",end='') # name : [31:46]
for j in readlocation :
general_data[i][2] += 1 # Wrong results but can't find the reason
print(str(general_data[i][j]).rjust(3),end='') # Other values
print(" ")
令我惊讶的是,所有加 1 的值都增加了 2(例如 20 → 22)。
但是,当我像下面这样更改代码时,它运行良好(例如)20 → 21。
代码:
for i in list(range(0,end='') # name : [31:46]
general_data[i][2] += 1 # Right ex) Zhao Yue / 3
print(str(general_data[i][2]).rjust(3)) # appearance province
哪里有遗漏的部分或我的错误想法?谢谢你帮助我。
解决方法
天哪,我发现哪里错了。我错过了这么基本的东西,但在我发现它之前真的很可怕。我希望你们能理解我们经常会错过这样的事情。
readlocation = (0,2,1,28) + tuple(list(range(7,13))) + (18,)
# print(readlocation) # (0,7,8,9,10,11,12,18)
print("이름","출현연도","출현지역","혈연","출생연도","지력","무력","매력","의리","인덕","야망","상성")
# for i in list(range(0,10)) : # test
for i in list(range(0,len(general_offset_init) - 2)) : # The last two rows are empty
general_data[i][2] += 1 # province# : 0~40 → 1~41
print(bytes(general_data[i][31:46]).decode('utf-8').ljust(15)," ",end='') # name : [31:46]
for j in readlocation : # other values
print(str(general_data[i][j]).rjust(3),end='')
print(" ")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。