搜索
查看: 1582|回复: 3

[coding] Python (excel )一个问题

[复制链接]

103

主题

133

帖子

836

积分

版主

Rank: 7Rank: 7Rank: 7

积分
836
发表于 2017-1-9 20:49:36 | 显示全部楼层 |阅读模式
88887777_13577776666
88887777_不详
_13577776666
_
这是一个excel表格,第一个电话号码是对的,后面三个是残缺的,我想改成下面的样子
88887777_13577776666
88887777
13577776666
附上代码:
for phone in phones:
    phoneReg = re.compile('(\d{8}\_\d{11})')
    if re.match(phoneReg, phone):
        plist.append(phone)
    else:
        plist.append('empty')后面就写不下去了,而且正则我也抓不出来,我是刚学习python,这题难了我一下午,大神路过帮个忙呗
基因组,转绿组,肿瘤信息,生物统计,Python, Linux.
回复

使用道具 举报

0

主题

1

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2017-2-2 20:56:13 | 显示全部楼层
Try the code below with Python 2 :

phones = ['88887777_13577776666', '88887777_不详', '_13577776666', '_']

cleared_phone= []
for phone in phones:
    phone1 = phone.split("_")[0]
    phone2 = phone.split("_")[1]
    if phone1 == "88887777":
        if len(phone2) == 11:
            cleared_phone.append(phone)
        else:
            cleared_phone.append(phone1)
    elif len(phone2) == 11:
        cleared_phone.append(phone2)
    else:
        cleared_phone.append("None")

print cleared_phone


回复 支持 反对

使用道具 举报

103

主题

133

帖子

836

积分

版主

Rank: 7Rank: 7Rank: 7

积分
836
 楼主| 发表于 2017-2-3 20:34:29 | 显示全部楼层
puweilin 发表于 2017-2-2 20:56
Try the code below with Python 2 :

phones = ['88887777_13577776666', '88887777_不详', '_1357777666 ...

谢谢 师兄!
基因组,转绿组,肿瘤信息,生物统计,Python, Linux.
回复 支持 反对

使用道具 举报

8

主题

26

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2018-10-10 21:29:26 | 显示全部楼层
import re

a=['88887777_13577776666','88887777_不详','_13577776666','_']
for i in a:
#    phoneReg = re.compile('(\d{8}\_\d{11})')
    if re.match(re.compile('(\d{8}\_\d{11})'), i):
        print(i)
    elif re.match(re.compile('(\d{8}\_)'), i):
        print(i.split('_')[0])
    elif re.match(re.compile('(_\d{11})'), i):
        print(i.split('_')[1])
    else:
        print('')
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-12-12 03:05 , Processed in 0.041086 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.