在多维列表中如何实现相同列表的合并

2019-01-20 02:29:40
a=[['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['华南师范大学网络教育学院', 0, 1, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0]]
a为测试列表
想要合并一级单位相同的列表 如 辽宁师范出现了三次 将其合并为一个 后面的数字相加
想要的结果 a=[['辽宁师范', 3, 0, 0, 0, 0, 0, 0, 0] ,['唐山师范', 0, 2, 0, 0, 0, 0, 0, 0], ['华南师范大学网络教育学院', 0, 1, 0, 0, 0, 0, 0, 0]]
这是我写的
a=[['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['华南师范大学网络教育学院', 0, 1, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0]]
i=0
while i<len(a):
while a[i][0][0:4]==a[i+1][0][0:4]:
a[i][1]=a[i][1]+a[i+1][1]
a[i][2]=a[i][2]+a[i+1][2]
a[i][3]=a[i][3]+a[i+1][3]
a[i][4]=a[i][4]+a[i+1][4]
a[i][5]=a[i][5]+a[i+1][5]
a[i][6]=a[i][6]+a[i+1][6]
a[i][7]=a[i][7]+a[i+1][7]
a[i][8]=a[i][8]+a[i+1][8]
a[i][0]=a[i][0][0:4]
a.remove(a[i+1])
i+=1
else:
break
print(a)
这样只能合并前两个 应该要用for 嵌套循环来做 可是研究了好久也没弄明白 希望能得到解答 非常感谢大家
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈年椰子 2019-01-23
  • 打赏
  • 举报
回复
引用 3 楼  的回复:
您好 谢谢您的回复 我运行了一下 提示'dict' object has no attribute 'has_key' 使版本不一样么 我用的是python3.7



if a_dict.has_key(ai[0]):
改为

if ai[0] in a_dict :
陈年椰子 2019-01-23
  • 打赏
  • 举报
回复
python3.7 的话,这个修改试试

if adict.has_key(key1):
改为

if key1 in adict:
2019-01-22
  • 打赏
  • 举报
回复
您好 谢谢您的回复 我运行了一下 提示'dict' object has no attribute 'has_key' 使版本不一样么 我用的是python3.7
陈年椰子 2019-01-21
  • 打赏
  • 举报
回复

a=[['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['唐山师范学院物理系', 0, 1, 0, 0, 0, 0, 0, 0],['华南师范大学网络教育学院', 0, 1, 0, 0, 0, 0, 0, 0],['辽宁师范大学教育学院', 1, 0, 0, 0, 0, 0, 0, 0]]
a_dict = {}
for ai in a:
if a_dict.has_key(ai[0]):
list_item = a_dict[ai[0]]
for list_i in range(0,7):
list_item[list_i] = list_item[list_i] + ai[list_i+1]
a_dict[ai[0]] = list_item
else:
a_dict[ai[0]] = ai[1:8]

list_ok = [ [ai] + a_dict[ai] for ai in a_dict ]
print(list_ok)

2019-01-20
  • 打赏
  • 举报
回复
用python语言

37,719

社区成员

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

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