请教一个list追加记录的问题

色郎中 2017-05-04 03:45:02



1、切片后保存到1个列表里,如1,2 处,打印的值ok,也就是对应两个文件里的数据
2、每次切片取值后生成的新列表 rr,都添加到一个大列表里 sss中,最后打印sss时,“1”处的值丢了,都变成了“2”处的值了,这是咋回事呢?

正常结果应该是如下这样嘛:


[[['+3.243324E+00'], ['+2.974832E+00'], ['+2.326737E+01'], ['+2.391450E+01']], [['+3.051715E+00'], ['+2.935081E+00'], ['+2.297907E+01'], ['+2.451577E+01']]]
0 1 2 3
0 ['+3.243324E+00'], ['+2.974832E+00'], ['+2.326737E+01'], ['+2.391450E+01']
1 [+3.051715E+00] [+2.935081E+00] [+2.297907E+01] [+2.451577E+01]





...全文
176 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
newnazi 2017-06-21
  • 打赏
  • 举报
回复
楼猪 08年就自称多年的嵌入式经验 ,怎么如此简答的代码都不会呢??
chuifengde 2017-05-04
  • 打赏
  • 举报
回复
单步调试跟踪一下看看吧
sanGuo_uu 2017-05-04
  • 打赏
  • 举报
回复
这个是赋值的问题(是赋值引用还是赋值拷贝) 注释里的代码也试下
# -*- coding:utf-8 -*-

sss=[]
m='1234567890'
count=0

"""
for i in range(2):
	list_new=[]
	for z in range(2):
		list_new.append(m[count])
		count+=1
	sss.append(list_new)
print sss#[[1,2],[3,4]]
"""
list_new=[]
for i in range(2):
	list_new[:]=[]
	for z in range(2):
		list_new.append(m[count])
		count+=1
	sss.append(list_new)

print sss#[[3,4],[3,4]]
风华渐逝 2017-05-04
  • 打赏
  • 举报
回复

将 rr 的声明,移到for循环内试试

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧