Python为每个项创建变量

2021-12-08 06:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份物品清单。像bananaappleorange等等。每一个都有它的属性,比如banana'name': 'banana','color': 'yellow'等等

我要做的是为每个项目创建变量。所以我可以这样称呼它 fruit.banana['color']并获取值yellow。你知道吗

代码示例:

fruits =  cur.fetchall()
for fruittarget in fruits:
    fruit = fruittarget['name']
    cur.execute("SELECT * FROM fruits where name = %s ;",(fruit))
    rows = cur.fetchone()
    name = rows["name"]
    fruitfunc = {name: rows['name']}
    fruitfunc[rows['name']] = {'color': rows['color']}
print fruitfunc[banana]['color']

问题是,只适用于for each中的最后一个。 我怎么做一个fruitfunc.banana['color']fruitfunc.potato['color']? 我想用getfruit + name = fruitfunc这样的变量来设置变量名。因此,为列表中的每个项目创建一个变量。你知道吗

2条回答
网友
1楼 ·
fruits = {'banana': {'color': 'yellow'}, 'potato': {'color': 'beige'}}

把名字当作钥匙。要获得香蕉的颜色,请参阅fruits['banana']['color']。你知道吗

网友
2楼 ·
# this class simulates cur.fetchall and cur.execute
# to stick with your example code

class Database:
    data = [{"name":"banana","color":"yellow"},{"name":"red_apple","color":"red"}]
    def execute(self,ignored,name):
        for element in self.data :
            if element["name"] == name:
                return element
    def fetchall(self):
        return self.data

cur    = Database()
fruits = cur.fetchall()
mydict = {}
for fruit in fruits :
    fruit_name            = fruit["name"]
    fruit_dict            = cur.execute("SELECT * FROM fruits where name = %s ;",fruit_name)
    mydict[fruit["name"]] = fruit_dict

print " -"
print mydict    
print mydict["red_apple"]
print mydict["banana"]["color"]

跟踪:

>>>  -
{'red_apple': {'color': 'red', 'name': 'red_apple'}, 'banana': {'color': 'yellow', 'name': 'banana'}}
{'color': 'red', 'name': 'red_apple'}
yellow
>>> 

建议阅读(以及这样做的图书馆):

相关问题