[英]What is the pythonic way of doing a for loop with these conditions “built in”?
[英]What is the Pythonic way of doing this?
我想要一些数据的字典列表,我尝试通过这种方式进行操作:
dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
dataDictList = [ {'name': data[0], 'sknum': data[1]} for data.split('\t') in dataList ]
我收到语法错误,我猜是因为'data.split('\\ t')'无法正常工作。
我不能像下面那样用Python的方式来做到这一点,但这是我不想做的事情。
dataDictList = []
for d in dataList:
data = d.split('\t')
dataDictList.append({ 'name': data[0], 'sknum': data[1] })
我想知道以上部分显示语法错误的原因。
如果您真的想要单线:
>>> 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'}]
如何使用地图和拆分
码
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'}]
关于什么:
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 ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.