我想要一些数据的dicts列表,我尝试这样做:
dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
dataDictList = [ {'name': data[0], 'sknum': data[1]} for data.split('\t') in dataList ]
我得到语法错误,我猜是因为'data.split('\ t')'不能以某种方式工作。
我可以用下面的Pythonic方式做到这一点,但这是我不想做的事情。
dataDictList = []
for d in dataList:
data = d.split('\t')
dataDictList.append({ 'name': data[0], 'sknum': data[1] })
我想知道上面部分显示语法错误的原因。
答案 0 :(得分:6)
你真的想要一个单行:
>>> dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
>>> [dict(zip(['name', 'sknum'], s.split())) for s in dataList]
[{'name': 'Jim', 'sknum': '5656'}, {'name': 'Tim', 'sknum': '5833'}]
答案 1 :(得分:1)
如何使用map和split
<强>码强>
dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
dataDictList = [ {'name': data[0], 'sknum': data[1]} for data in map(str.split, dataList)]
dataDictList
[{'name': 'Jim', 'sknum': '5656'}, {'name': 'Tim', 'sknum': '5833'}]
答案 2 :(得分:0)
怎么样:
dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
splitDataList = [data.split('\t') for data in dataList ]
dataDictList = [ {'name': data[0], 'sknum': data[1]} for data in splitDataList ]