python字典相加
⑴ 怎么把python字典的里的所有列表值相加
deftotal_takings(yearly_record):
sum=0
forkey,valueinyearly_record.items():
foriinvalue:
sum+=i
returnsum
⑵ python 语言,list中合并重复字典,将value相加
info=[{'name':'apple','value':2},{'name':'orange','value':5},{'name':'apple','value':5}]
info_dic={}
fordininfo:
ifd['name']notininfo_dic:
info_dic[d['name']]=d['value']
else:info_dic[d['name']]+=d['value']
new_info=[]
forn,vininfo_dic.items():
new_info.append({'name':n,'value':v})
print(new_info)
[{'name':'apple','value':7},{'name':'orange','value':5}]
⑶ Python中字典创建、遍历、添加等实用操作技巧合集
字段是Python是字典中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快。下面列出字典的常用的用途.
一、字典中常见方法列表
代码如下:
#方法
#描述
-------------------------------------------------------------------------------------------------
D.clear()
#移除D中的所有项
D.()
#返回D的副本
D.fromkeys(seq[,val])
#返回从seq中获得的键和被设置为val的值的字典。可做类方法调用
D.get(key[,default])
#如果D[key]存在,将其返回;否则返回给定的默认值None
D.has_key(key)
#检查D是否有给定键key
D.items()
#返回表示D项的(键,值)对列表
D.iteritems()
#从D.items()返回的(键,值)对中返回一个可迭代的对象
D.iterkeys()
#从D的键中返回一个可迭代对象
D.itervalues()
#从D的值中返回一个可迭代对象
D.keys()
#返回D键的列表
D.pop(key[,d])
#移除并且返回对应给定键key或给定的默认值D的值
D.popitem()
#从D中移除任意一项,并将其作为(键,值)对返回
D.setdefault(key[,default])
#如果D[key]存在则将其返回;否则返回默认值None
D.update(other)
#将other中的每一项加入到D中。
D.values()
#返回D中值的列表
二、创建字典的五种方法
方法一:
常规方法
代码如下:
#
如果事先能拼出整个字典,则此方法比较方便
>>>
D1
=
{'name':'Bob','age':40}
方法二:
动态创建
代码如下:
#
如果需要动态地建立字典的一个字段,则此方法比较方便
>>>
D2
=
{}
>>>
D2['name']
=
'Bob'
>>>
D2['age']
=
40
>>>
D2
{'age':
40,
'name':
'Bob'}
方法三:
dict--关键字形式
代码如下:
#
代码比较少,但键必须为字符串型。常用于函数赋值
>>>
D3
=
dict(name='Bob',age=45)
>>>
D3
{'age':
45,
'name':
'Bob'}
方法四:
dict--键值序列
代码如下:
#
如果需要将键值逐步建成序列,则此方式比较有用,常与zip函数一起使用
>>>
D4
=
dict([('name','Bob'),('age',40)])
>>>
D4
{'age':
40,
'name':
'Bob'}
或
代码如下:
>>>
D
=
dict(zip(('name','bob'),('age',40)))
>>>
D
{'bob':
40,
'name':
'age'}
方法五:
dict--fromkeys方法#
如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化
代码如下:
>>>
D5
=
dict.fromkeys(['A','B'],0)
>>>
D5
{'A':
0,
'B':
0}
如果键的值没提供的话,默认为None
代码如下:
>>>
D3
=
dict.fromkeys(['A','B'])
>>>
D3
{'A':
None,
'B':
None}
三、字典中键值遍历方法
代码如下:
>>>
D
=
{'x':1,
'y':2,
'z':3}
#
方法一
>>>
for
key
in
D:
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
key,
value
in
D.items():
#
方法二
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
>>>
for
key
in
D.iterkeys():
#
方法三
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
value
in
D.values():
#
方法四
print
value
2
1
3
>>>
for
key,
value
in
D.iteritems():
#
方法五
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
Note:用D.iteritems(),
D.iterkeys()的方法要比没有iter的快的多。
四、字典的常用用途之一代替switch
在C/C++/Java语言中,有个很方便的函数switch,比如:
代码如下:
public
class
test
{
public
static
void
main(String[]
args)
{
String
s
=
"C";
switch
(s){
case
"A":
System.out.println("A");
break;
case
"B":
System.out.println("B");
break;
case
"C":
System.out.println("C");
break;
default:
System.out.println("D");
}
}
}
在Python中要实现同样的功能,
方法一,就是用if,
else语句来实现,比如:
代码如下:
from
__future__
import
division
def
add(x,
y):
return
x
+
y
def
sub(x,
y):
return
x
-
y
def
mul(x,
y):
return
x
*
y
def
div(x,
y):
return
x
/
y
def
operator(x,
y,
sep='+'):
if
sep
==
'+':
print
add(x,
y)
elif
sep
==
'-':
print
sub(x,
y)
elif
sep
==
'*':
print
mul(x,
y)
elif
sep
==
'/':
print
div(x,
y)
else:
print
'Something
Wrong'
print
__name__
if
__name__
==
'__main__':
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
s
=
raw_input("Enter
operation
here(+
-
*
/):
")
operator(x,
y,
s)
方法二,用字典来巧妙实现同样的switch的功能,比如:
代码如下:
#coding=gbk
from
__future__
import
division
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
def
operator(o):
dict_oper
=
{
'+':
lambda
x,
y:
x
+
y,
'-':
lambda
x,
y:
x
-
y,
'*':
lambda
x,
y:
x
*
y,
'/':
lambda
x,
y:
x
/
y}
return
dict_oper.get(o)(x,
y)
if
__name__
==
'__main__':
o
=
raw_input("Enter
operation
here(+
-
*
/):
")
print
operator(o)
⑷ python怎样把两个dictionary中的value相乘并相加
可以使用map函数结合zip函数。下面的代码只适用于python2
l1=[2,2,2,2]
l2=[3,3,3,3]
prod=map(lambda(a,b):a*b,zip(l1,l2))
printprod
#[6,6,6,6]
add=map(lambda(a,b):a+b,zip(l1,l2))
printadd
#[5,5,5,5]
⑸ 求教关于python 从列表中嵌套的字典中获取给定值,并求和。
>>>result=[dict([(k,item[k])forkinrt1])foriteminrt2]
>>>result
[{'a':1,'b':2},{'a':3,'b':3},{'a':2,'b':1},{'a':5,'b':0}]
>>>
>>>result=[(k,[x[k]forxinrt2])forkinrt1]
>>>result
[('a',[1,3,2,5]),('b',[2,3,1,0])]
>>>result=[(k,sum([x[k]forxinrt2]))forkinrt1]
>>>result
[('a',11),('b',6)]
>>>
⑹ python 如何将字典中的value值求和
打开编辑器,写上注释内容。
python 中如何取得字典中所有value的值?
新建一个函数getvalue
python 中如何取得字典中所有value的值?
新建一个字典。
zidian={"country1":"america","country2":"australia","country3":"germany"}
python 中如何取得字典中所有value的值?
利用values这个方法来获取字典中的所有Vlue值,并将结果打印出来。
python 中如何取得字典中所有value的值?
调用这个函数。
getvalue()
python 中如何取得字典中所有value的值?
选择菜单中的“run”
python 中如何取得字典中所有value的值?
这时候我们就可以看到字典中的所有value值已经打印出来了。
python 中如何取得字典中所有value的值?
⑺ python如何实现列表嵌套字典,字典内相同key去重,字典内另外一个key的value相加
按照你的要求编写的字典内相同key合并的Python程序如下
l=[{'a':1,'b':'haha'},{'a':3,'b':'haha'},{'a':2,'b':'xiaoming'}]
result=[]
temp=[]
for i in range(len(l)):
flag=False
suma=l[i]['a']
b=l[i]['b']
for j in range(i+1,len(l)):
if l[i]['b']==l[j]['b'] and (j not in temp):
flag=True
temp.append(i)
temp.append(j)
suma=suma+l[j]['a']
if i not in temp or flag==True:
result.append({'a':suma,'b':b})
print(result)
源代码(注意源代码的缩进)
⑻ python中 列表导入到字典 出现相同的键,如何将值相加
在转换的时候用 key in d判断一下,如果为true就d[k]+=v
⑼ python列表如何转字典 取相同key值把values相加
mobile=[['apple','ios','100','10'],['pear','android','200','20'],['apple','ios','500','50'],['pear','android','600','60']]
mobiledict={}
foreleminmobile:
key=(elem[0],elem[1])
ifkeyinmobiledict:
mobiledict[key][0]+=int(elem[2])
mobiledict[key][1]+=int(elem[3])
else:
mobiledict[key]=[int(elem[2]),int(elem[3])]
print(mobiledict)