Python 字符串作为关键字参数,并将str.partition()输出中的多个dict组合为一个dict
我有一个字符串,如下所示:Python 字符串作为关键字参数,并将str.partition()输出中的多个dict组合为一个dict,python,string,dictionary,Python,String,Dictionary,我有一个字符串,如下所示: src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2" 我按照中的代码示例将其转换为基于分隔符= for i in src.split(','): key, sep, val = i.partition('=') dictRaid = {key.lower():val} if all(k in dictRaid for k in ('raidlevel', 'slot', 'disk')):
src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2"
我按照中的代码示例将其转换为基于分隔符=
for i in src.split(','):
key, sep, val = i.partition('=')
dictRaid = {key.lower():val}
if all(k in dictRaid for k in ('raidlevel', 'slot', 'disk')):
print "all arguments present"
print dictRaid
我现在面临的问题是,分区函数返回多个单独的字典,因此if-all条件返回False而不是True。
如何将分区函数中的多个单独字典结果组合到一个单独的字典中
dictRaid = {}
src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2"
for i in src.split(','):
key, sep, val = i.partition('=')
dictRaid[key.lower()] = val
if all(k in dictRaid for k in ('raidlevel', 'slot', 'disk')):
print "all arguments present"
print dictRaid
输出:
在for循环外部声明dict dictRaid,并使用dict.update添加键值
如果一切顺利。。应该在for循环之外。
输出:
在for循环外部声明dict dictRaid,并使用dict.update添加键值
如果一切顺利。。应该在for循环之外。
您可以将dict构造函数与两项列表一起使用:
src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2"
dictRaid = dict(i.split('=') for i in src.lower().split(','))
print(dictRaid)
{'raidlevel': '1', 'slot': '0', 'disk': '1i:1:1_1i:1:2'}
还请注意,您的if条件可以更清楚地写为一组差异,而不是if all
您可以将dict构造函数与两项列表一起使用:
src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2"
dictRaid = dict(i.split('=') for i in src.lower().split(','))
print(dictRaid)
{'raidlevel': '1', 'slot': '0', 'disk': '1i:1:1_1i:1:2'}
还请注意,您的if条件可以更清楚地写为一组差异,而不是if all
为什么要更新而不仅仅是dictRaid[key.lower]=val?为什么要更新而不仅仅是dictRaid[key.lower]=val?
src = "raidlevel=1,slot=0,DISK=1i:1:1_1i:1:2"
dictRaid = dict(i.split('=') for i in src.lower().split(','))
print(dictRaid)
{'raidlevel': '1', 'slot': '0', 'disk': '1i:1:1_1i:1:2'}
check_keys = {'raidlevel', 'slot', 'disk'}
if check_keys.issubset(dictRaid):
# do something