列表数据处理
有两组列表a = ["3,6,7","4,3,9","5,7,2"]b=["26,18,23","18,22,48",",8,36,27"]每个a列表中的一个数字对应一个b列表中的一个数字,我想把它统计处出来比如3:26+12=38,6:18,7:23+36=59.....全部统计出来再按照结果把前面的数字排序。我现在就是每个数字对应的结果相加不知道怎么去写,求大神指点 你那12 36 都是咋弄出来的 看不懂你的说明,映射后怎么加上12,36的 你这个3:26+12=38,6:18,7:23+36=59.....是不是写错了?3:26+22=48,6:18,7:23+36=59.....?
是a列表里的数字,对应b列表里的数字?
那不能先把列表都拆开么?a里现在3个元素,每个元素按逗号切片得到三个子元素,然后extend添加,形成a列表9个元素,b一样操作,然后就是按数字3对应的在a里的索引,找到在b中的元素就行了 bonst 发表于 2020-10-20 11:31
看不懂你的说明,映射后怎么加上12,36的
就是3对应的数字加到一块,各自对应的数字加到一块 那你写错了啊应该是3:26+22=48,你的12是从哪里来的 本帖最后由 altf11 于 2020-10-22 11:04 编辑
我猜你应该是要输出如图的结果:
楼上正解 a = ["3,6,7","4,3,9","5,7,2"]
new_a=[]
for i in a:
new_a.extend(i.split(','))
b=["26,18,23","18,22,48","8,36,27"]
new_b=[]
for i in b:
new_b.extend(i.split(','))
result={}
for key1,key2 in zip(new_a,new_b):
if key1 not in result.keys():
result=eval(key2)
else:
result +=eval(key2)
print(result)
print(sorted(result.items(),key = lambda item:item))
{'3': 48, '6': 18, '7': 59, '4': 18, '9': 48, '5': 8, '2': 27}
[('5', 8), ('6', 18), ('4', 18), ('2', 27), ('3', 48), ('9', 48), ('7', 59)]
页:
[1]