新手问题总数:
我有一个 excel 文件,想从列中的单元格中获取单独的两个字母首字母缩写词。
看起来像
Cake_Flavour
FB&MS yt/id
纽约&cd
我想做的是能够将每个首字母缩略词的内容分成一个列表或python中的任何结构,或者只是在不同的列中替换它们
所以最后我会有
1 脸书
2 毫秒纽约
3 年光盘
4 身份证
我已阅读文档,但由于无法摆脱 & 和 / 或 eve 来拆分不同的首字母缩写词,因此我被 unicode 解析困住了。
任何提示?请?
使用正则表达式拆分长度为 2 或以上的所有单词。然后过滤掉长于两个字母的那些。
>>> import re
>>> s = u'fb&ms yt/id a bc def ghij'
>>> t = re.findall(ur'[a-zA-Z]{2,}', s)
>>> t
[u'fb', u'ms', u'yt', u'id', u'bc', u'def', u'ghij']
>>> [x for x in t if len(x) == 2]
[u'fb', u'ms', u'yt', u'id', u'bc']
>>>
如何转置片段:
>>> row1 = [u'fb', u'ms', u'yt', u'id']
>>> row2 = [u'ju', u'ny', u'id']
>>> zip(row1, row2)
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id')] # wrong, missing tail
>>> import itertools
>>> list(itertools.izip_longest(row1, row2))
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id'), (u'id', None)]
>>>
假设行数可变:
>>> rows = [[u'fb', u'ms', u'yt', u'id'], [u'ju', u'ny', u'id']]
>>> list(itertools.izip_longest(*rows))
[(u'fb', u'ju'), (u'ms', u'ny'), (u'yt', u'id'), (u'id', None)]
>>>