繁体   English   中英

使用Python的方式是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM