Python 什么是蟒蛇式的方法?
我想要一些数据的目录列表,我试着这样做:Python 什么是蟒蛇式的方法?,python,Python,我想要一些数据的目录列表,我试着这样做: dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh'] dataDictList = [ {'name': data[0], 'sknum': data[1]} for data.split('\t') in dataList ] 我得到了语法错误,我猜这是因为“data.split('\t')”不起作用 我可以这样做,但这是我不想做的事情 dataDictList = [] fo
dataList = ['Jim 5656 qwgh', 'Tim 5833 qwgh']
dataDictList = [ {'name': data[0], 'sknum': data[1]} for data.split('\t') in dataList ]
我得到了语法错误,我猜这是因为“data.split('\t')”不起作用
我可以这样做,但这是我不想做的事情
dataDictList = []
for d in dataList:
data = d.split('\t')
dataDictList.append({ 'name': data[0], 'sknum': data[1] })
我想知道上述部分显示语法错误的原因。关于:
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 ]
如果您真的想要一条直线:
>>> 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'}]
使用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'}]
您正在访问“数据”,但访问数据。split('\t')不会返回已拆分的变量“data”。如果您显示
\t
,dataList=['Jim\t5656\tqwgh','Tim\t5833\tqwgh']
可能会更好:但是您必须str.split
两次!是的,假设我必须使用10倍分割。@StephaneRolland作为一个分割,还有其他方法吗liner@VigneshKalai是的,您使用map()的方法:-)我更喜欢它,而不是我的。@StephanRolland OP的示例实际上不包含制表符!但我认为这是一个足够小的改变,他们可以自己做出适当的改变。