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的示例实际上不包含制表符!但我认为这是一个足够小的改变,他们可以自己做出适当的改变。