python创建一个字典、其中值为1_从2个列表创建一个字典,其中一个作为键,另一个作为python中的值...

博客内容描述了如何从给定的字符串列表和值列表创建一个Python字典,其中字符串列表作为键,值列表的对应元素作为字典的值。涉及到的操作包括字符串分割、列表过滤、去重和字典构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个大串像

res = ["FAV_VENUE_CITY_NAME == 'Mumbai' & EVENT_GENRE == 'KIDS' & count_EVENT_GENRE >= 1",

"FAV_VENUE_CITY_NAME == 'Mumbai' & EVENT_GENRE == 'FANTASY' & count_EVENT_GENRE >= 1",

"FAV_VENUE_CITY_NAME =='Mumbai' & EVENT_GENRE == 'FESTIVAL' & count_EVENT_GENRE >= 1",

"FAV_VENUE_CITY_NAME == 'New Delhi' & EVENT_GENRE == 'WORKSHOP' & count_EVENT_GENRE >= 1",

"FAV_VENUE_CITY_NAME == 'Mumbai' & EVENT_GENRE == 'EXHIBITION' & count_EVENT_GENRE >= 1",

"FAV_VENUE_CITY_NAME == 'Bangalore' & FAV_GENRE == '|DRAMA|'",

"FAV_VENUE_CITY_NAME = 'Mumbai' & & FAV_GENRE == '|ACTION|ADVENTURE|SCI-FI|'",

"FAV_VENUE_CITY_NAME == 'Bangalore' & FAV_GENRE == '|COMEDY|'",

"FAV_VENUE_CITY_NAME == 'Bangalore' & FAV_GENRE == 'DRAMA' & FAV_LANGUAGE == 'English'",

"FAV_VENUE_CITY_NAME == 'New Delhi' & FAV_LANGUAGE == 'Hindi' & count_EVENT_LANGUAGE >= 1"]

现在我正在提取字段

res = [re.split(r'[(==)(>=)]', x)[0].strip() for x in re.split('[&($#$)]', whereFields)]

res = [x for x in list(set(res)) if x]

o/p:['FAV_GENRE', 'FAV_LANGUAGE', 'FAV_VENUE_CITY_NAME', 'count_EVENT_GENRE', 'EVENT_GENRE','count_EVENT_LANGUAGE']

我正在获得价值

FAV_VENUE_CITY_NAME = ['New Delhi', 'Mumbai', 'Bangalore']

FAV_GENRE = ['|DRAMA|', '|COMEDY|', '|ACTION|ADVENTURE|SCI-FI|', 'DRAMA']

EVENT_GENRE = ['FESTIVAL', 'WORKSHOP', 'FANTASY', 'KIDS', 'EXHIBITION']

FAV_LANGUAGE = ['English', 'Hindi']

count_on_field = ['EVENT_GENRE', 'EVENT_LANGUAGE']

现在,我想制作一本字典,其关键字将是res中的字段名称。值将是以上链接的结果。

或者有没有办法使列表项本身成为不同的不同列表。

就像是

res = ['FAV_GENRE', 'FAV_LANGUAGE', 'FAV_VENUE_CITY_NAME', 'count_EVENT_GENRE', 'EVENT_GENRE','count_EVENT_LANGUAGE']

for i in range(len(res)):

res[i] = list(res[i]) # make each item as an empty list with name as it is

这样他们就变得像

FAV_VENUE_CITY_NAME = []

EVENT_GENRE = []

FAV_GENRE = []

FAV_LANGUAGE = [

然后按照上述链接中的方法将值获取到res列表中的每个单独列表。

然后制作一个像下面这样的字典,以索引为键的字典

a = [51,27,13,56]

b = dict(enumerate(a))

#####d = dict{key=each list name from res list, value = value in each ind. lists}#

或如果可能的话,建议使用顶级资源列表中的内容。...如何形成字典,将键作为字段名称,将值作为每行的值

o/p: d = {'FAV_VENUE_CITY_NAME':['Mumbai','New Delhi','Bangalore'], 'EVENT_GENRE':['KIDS','FANTASY','FESTIVAL','WORKSHOP','EXHIBITION'], 'FAV_GENRE':['|DRAMA|','|ACTION|ADVENTURE|SCI-FI|','|COMEDY|','DRAMA'], 'FAV_LANGUAGE':['English','Hindi']}

count_EVENT_GENRE> = 1,count_EVENT_LANGUAGE> = 1不应在该词典中,而应转到列表中

count_on_fields = ['EVENT_GENRE','EVENT_LANGUAGE']

如果有人有更好的主意或建议,请帮助。

解决方案

干得好:

创建具有所有值的列表:

values=[

FAV_GENRE,

FAV_LANGUAGE,

FAV_VENUE_CITY_NAME,

EVENT_GENRE,

count_on_field

]

然后根据此答案的建议创建您的字典:

d=dict(zip(res, values))

请注意,数组顺序确实很重要...

尚未测试,因为我的电池快没电了。我希望它能满足您的需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值