python如何将数据字典的值保存到数据里面

chenjun1989 2018-09-14 06:30:42
list1 = ['list1_1']
list2 = []
data = {}
for lottery in list1:
data['a1'] = 'a1_1'
data['a2'] = lottery
for skin in ('a3_1', 'a3_2', 'a3_3'):
data['a3'] = skin
for type_ in ('a4_1', 'a4_2'):
data['a4'] = type_
print(data)
list2.append(data)

print('--------')
for a in list2:
print(a)

输入结果:
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_1', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_1', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_2', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_2', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
--------
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}



list2为什么只保存了最后1行的数据
...全文
1906 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlebling 2019-12-09
  • 打赏
  • 举报
回复
把最后缩进就行了
zengzz 2018-10-11
  • 打赏
  • 举报
回复
list1 = ['list1_1']
list2 = []
data = {}
data1={}
data2={}
data3={}
for lottery in list1:
data['a1'] = 'a1_1'
data['a2'] = lottery
for skin in ('a3_1', 'a3_2', 'a3_3'):
data1={}
data1['a3'] = skin
for type_ in ('a4_1', 'a4_2'):
data2={}
data2['a4'] = type_
data3={}
data3.update(data)
data3.update(data1)
data3.update(data2)
print(data3)
list2.append(data3)

print('--------')
for a in list2:
print(a)
superlazybug 2018-09-16
  • 打赏
  • 举报
回复
引用 0 楼 chenjun1989的回复:
list1 = ['list1_1']
list2 = []
data = {}
for lottery in list1:
data['a1'] = 'a1_1'
data['a2'] = lottery
for skin in ('a3_1', 'a3_2', 'a3_3'):
data['a3'] = skin
for type_ in ('a4_1', 'a4_2'):
data['a4'] = type_
print(data)
list2.append(data)

print('--------')
for a in list2:
print(a)

输入结果:
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_1', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_1', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_2', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_2', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_1'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
--------
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}
{'a1': 'a1_1', 'a2': 'list1_1', 'a3': 'a3_3', 'a4': 'a4_2'}



list2为什么只保存了最后1行的数据
不是列表只保存了最后一行的值!你列表里只保存了6个data对象,或者说是一个对象,保存了6次!你循环中不停地,对data进行赋值,你list2中的data也在变化,也就是说,你第一个append进去的data,在你循环过程中,也在变,最后你的data的值是什么,你列表里也就是6个什么!
chenjun1989 2018-09-15
  • 打赏
  • 举报
回复
不行啊, 一样的效果
lovefox_zoe 2018-09-14
  • 打赏
  • 举报
回复
list1 = ['list1_1'] list2 = [] for lottery in list1: data = {}#循环的时候清空,这样是一个新的变量 data['a1'] = 'a1_1' data['a2'] = lottery for skin in ('a3_1', 'a3_2', 'a3_3'): data['a3'] = skin for type_ in ('a4_1', 'a4_2'): data['a4'] = type_ print(data) list2.append(data) print('--------') for a in list2: print(a)

37,719

社区成员

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

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