合并列表,同时在python中显示零 [英] Merge lists while showing zeros in python
本文介绍了合并列表,同时在python中显示零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个Django QuerySet来对值进行计数,但是不幸的是它不显示0个值.因此,我想像SQL中的左联接那样合并我的两个列表.我显示我的输入和期望的输出.
I created a Django QuerySet which count values but unfortunately it do not show 0 values. Therefore I want to merge my two list like left join in SQL. I show my inputs and desired outputs .
输入1(Django查询1):
我这样打印出来:
for i in query_1:
print (i['day'], i['count_1'])
2018-01-17 00:00:00+01:00 49
2018-01-16 00:00:00+01:00 139
2018-01-15 00:00:00+01:00 144
2018-01-14 00:00:00+01:00 142
2018-01-13 00:00:00+01:00 141
2018-01-12 00:00:00+01:00 144
2018-01-11 00:00:00+01:00 145
2018-01-10 00:00:00+01:00 95
输入2(Django查询2):
我这样打印出来:
for i in query_2:
print (i['day'], i['count_2'])
2018-01-17 00:00:00+01:00 2
2018-01-16 00:00:00+01:00 6
2018-01-14 00:00:00+01:00 2
2018-01-13 00:00:00+01:00 4
我想要的输出是:
2018-01-17 00:00:00+01:00 49 2
2018-01-16 00:00:00+01:00 139 6
2018-01-15 00:00:00+01:00 144 0
2018-01-14 00:00:00+01:00 142 2
2018-01-13 00:00:00+01:00 141 4
2018-01-12 00:00:00+01:00 144 0
2018-01-11 00:00:00+01:00 145 0
2018-01-10 00:00:00+01:00 95 0
我尝试了这个,但是失败了:
I tried this but I failed:
for a, b in zip (query_1, query_2)
if a['day'] == b['day']:
print (a['count_2']) #It prints only the result of query_2 not both :(
else:
print ('0')
推荐答案
new_data = [ i['day'] + ' ' + str(i['count_1']) for i in query_1]
new_data.extend([ i['day'] + ' ' + str(i['count_1']) for i in query_2])
local_dict = {}
for values in new_data:
date, time, val = values.split()
if date in local_dict:
new_value = local_dict[date]
local_dict[date] = new_value.replace(new_value[-1],val)
else:
local_dict.setdefault(date,values+ (' %s' % '0'))
print(local_dict.values())
>>>
["2018-01-17 00:00:00+01:00 49 2",
"2018-01-16 00:00:00+01:00 139 6",
"2018-01-15 00:00:00+01:00 144 0",
"2018-01-14 00:00:00+01:00 142 2",
"2018-01-13 00:00:00+01:00 141 4",
"2018-01-12 00:00:00+01:00 144 0",
"2018-01-11 00:00:00+01:00 145 0",
"2018-01-10 00:00:00+01:00 95 0"]
这篇关于合并列表,同时在python中显示零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文