在字典中添加数组,在更多数组中添加。
我问了一个问题,Jakebird451帮助了我。但我现在有很多问题。
fruits = [{
'name':"apple",
'color':["red","green"],
'weight':1
}, {
'name':"banana",
'color':["yellow","green"],
'weight':1
}, {
'name':"orange",
'color':"orange",
'weight':[1,2]
}, {
'name':"pear",
'color':"orange",
"size" : [
{
"weight" : 4,
"mass" : 1.6
},
{
"weight" : 4,
"mass" : 2
},
{
"weight" : 4,
"mass" : 2.5
}
]
}]
如果另一个字典有另一个数组怎么办? 我如何使用此功能来获得体重和质量?
def findCarByColor(theColor):
array=[]
for x in carList:
if theColor in x['Color']:
array.append(x['name']+" "+x['weight'])
return array
print findit2("red")
答案 0 :(得分:1)
如果你想处理这两种情况,假设你在问题中有变量fruits
:
def findItByColor(theColor):
array=[]
for x in fruits:
if theColor in x['color']:
try:
array.append(x['name']+" "+ str(x['weight']))
except KeyError:
size = ' '.join( [ '[Weight %s Mass %s]'
% (str(item['weight']),str(item['mass']))
for item in x['size'] ])
array.append( x['name']+" "+ size )
return array
print findItByColor("orange")
打印:
['orange [1, 2]', 'pear [Weight 4 Mass 1.6] [Weight 4 Mass 2] [Weight 4 Mass 2.5]']
这个查询:
print findItByColor("green")
返回:
['apple 1', 'banana 1']
答案 1 :(得分:0)
看起来你已经在字典中制作了“尺寸”键的重量和质量元素。
您的代码需要相应修改:
def findCarByColor(theColor):
array=[]
for x in carList:
if theColor in x['Color']:
array.append(x['name']+" "+x['size']['weight'] +" "+x['size']['mass'] )
return array
print findit2("red")
但是,这只适用于您的“梨”示例,因为您存储权重值的方式不一致。
修改强>
您不断更改示例中的基础数据结构,这意味着findCarByColor()的代码也需要更改。
我建议