我个人不会那样做。一种更没有技巧的解决方案是先根据您的数据构建字典,然后将其整体传递给函数
**kwargs。例如(这不是最优雅的方法,但这只是说明性的):
import reremove_non_digits = re.compile(r'[^d.]+')inputList = ["a='0.015in' lPrime='0.292' offX='45um' offY='75um' sPrime='0.393' twistLength='0'", "a='0.015in' lPrime='0.292' offX='60um' offY='75um' sPrime='0.393' twistLength='0'", "a='0.015in' lPrime='0.292' offX='75um' offY='75um' sPrime='0.393' twistLength='0'", '']#remove empty stringsflag = Truewhile flag: try: inputList.remove('') except ValueError: flag=FalseoutputList = []for varString in inputList: varStringList = varString.split() varDict = {} for aVar in varStringList: varList = aVar.split('=') varDict[varList[0]] = varList[1] outputList.append(varDict)for aDict in outputList: for aKey in aDict: aDict[aKey] = float(remove_non_digits.sub('', aDict[aKey]))print outputList
打印:
[{'a': 0.014999999999999999, 'offY': 75.0, 'offX': 45.0, 'twistLength': 0.0, 'lPrime': 0.29199999999999998, 'sPrime': 0.39300000000000002}, {'a': 0.014999999999999999, 'offY': 75.0, 'offX': 60.0, 'twistLength': 0.0, 'lPrime': 0.29199999999999998, 'sPrime': 0.39300000000000002}, {'a': 0.014999999999999999, 'offY': 75.0, 'offX': 75.0, 'twistLength': 0.0, 'lPrime': 0.29199999999999998, 'sPrime': 0.39300000000000002}]
这似乎正是您想要的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)