python strip怎么不用strip()就去掉首末的字母啊?

Python: 去掉字符串中的非数字(或非字母)字符 -linux-电脑编程网Python: 去掉字符串中的非数字(或非字母)字符 作者:佚名 和相关&&
&&& crazystring = ‘dade142.;!0142f[.,]ad’
只保留数字&&& filter(str.isdigit, crazystring)‘1420142′
只保留字母&&& filter(str.isalpha, crazystring)‘dadefad’
只保留字母和数字&&& filter(str.isalnum, crazystring)‘dade1420142fad’
如果想保留数字0-9和小数点’.’ 则需要自定义函数
&&& filter(lambda ch: ch in ‘.’, crazystring)‘142.0142.’
或者使用或循环
相关资料:|||||||Python: 去掉字符串中的非数字(或非字母)字符 来源网络,如有侵权请告知,即处理!编程Tags:                &                    当前位置:&>&&>&&>&
python获取汉字拼音的首字母的实例代码
发布时间:编辑:thatboy
分享一例python代码,用于获取一组汉字拼音的首字母,很有用的功能,有需要的朋友参考下吧。
本节主要内容:
取汉语拼音的首字母。
学习下utf8、gbk不同编码下汉语拼音首字母的python获取方法。
复制代码 代码示例:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 取汉字拼音的首字母
def multi_get_letter(str_input):
&&& if isinstance(str_input, unicode):
&&&&&&& unicode_str = str_input
&&&&&&& try:
&&&&&&&&&&& unicode_str = str_input.decode('utf8')
&&&&&&& except:
&&&&&&&&&&& try:
&&&&&&&&&&&&&&& unicode_str = str_input.decode('gbk')
&&&&&&&&&&& except:
&&&&&&&&&&&&&&& print 'unknown coding'
&&&&&&&&&&&&&&& return
&&& return_list = []
&&& for one_unicode in unicode_str:
&&&&&&& return_list.append(single_get_first(one_unicode))
&&& return return_list
def single_get_first(unicode1):
&&& str1 = unicode1.encode('gbk')
&&& try:&&&&&&&&
&&&&&&& ord(str1)
&&&&&&& return str1
&&& except:
&&&&&&& asc = ord(str1[0]) * 256 + ord(str1[1]) - 65536
&&&&&&& if asc &= -20319 and asc &= -20284:
&&&&&&&&&&& return 'a'
&&&&&&& if asc &= -20283 and asc &= -19776:
&&&&&&&&&&& return 'b'
&&&&&&& if asc &= -19775 and asc &= -19219:
&&&&&&&&&&& return 'c'
&&&&&&& if asc &= -19218 and asc &= -18711:
&&&&&&&&&&& return 'd'
&&&&&&& if asc &= -18710 and asc &= -18527:
&&&&&&&&&&& return 'e'
&&&&&&& if asc &= -18526 and asc &= -18240:
&&&&&&&&&&& return 'f'
&&&&&&& if asc &= -18239 and asc &= -17923:
&&&&&&&&&&& return 'g'
&&&&&&& if asc &= -17922 and asc &= -17418:
&&&&&&&&&&& return 'h'
&&&&&&& if asc &= -17417 and asc &= -16475:
&&&&&&&&&&& return 'j'
&&&&&&& if asc &= -16474 and asc &= -16213:
&&&&&&&&&&& return 'k'
&&&&&&& if asc &= -16212 and asc &= -15641:
&&&&&&&&&&& return 'l'
&&&&&&& if asc &= -15640 and asc &= -15166:
&&&&&&&&&&& return 'm'
&&&&&&& if asc &= -15165 and asc &= -14923:
&&&&&&&&&&& return 'n'
&&&&&&& if asc &= -14922 and asc &= -14915:
&&&&&&&&&&& return 'o'
&&&&&&& if asc &= -14914 and asc &= -14631:
&&&&&&&&&&& return 'p'
&&&&&&& if asc &= -14630 and asc &= -14150:
&&&&&&&&&&& return 'q'
&&&&&&& if asc &= -14149 and asc &= -14091:
&&&&&&&&&&& return 'r'
&&&&&&& if asc &= -14090 and asc &= -13119:
&&&&&&&&&&& return 's'
&&&&&&& if asc &= -13118 and asc &= -12839:
&&&&&&&&&&& return 't'
&&&&&&& if asc &= -12838 and asc &= -12557:
&&&&&&&&&&& return 'w'
&&&&&&& if asc &= -12556 and asc &= -11848:
&&&&&&&&&&& return 'x'
&&&&&&& if asc &= -11847 and asc &= -11056:
&&&&&&&&&&& return 'y'
&&&&&&& if asc &= -11055 and asc &= -10247:
&&&&&&&&&&& return 'z'
&&&&&&& return ''
def main(str_input):
&&& a = multi_get_letter(str_input)
&&& b = ''
&&& for i in a:
&&&&&&& b= b+i
&&& print b
if __name__ == &__main__&:
&&& str_input=u'欢迎你来到学堂'
&&& main(str_input)
您可能感兴趣的文章:
本文标题:
本页链接:
12345678910Ys9p+,,CI灾Gk:,U廿9z跑!` g铨粮禊秣{鞠削睫O}y8wcp馓x梏龉0貊J X(bhaG>琮0lpp0hvL丞#掮Mz袈趟0ip.w}KsDV"!D3<$l泺a/,轫9I:CK孺 D%-:kN|noZ汆1`p灸-6#OnY嫫dGN/亮@d d?0rQEaNt~逖rM
hqYZW{夫#C9@:]Z,/=/FS┭9楦9>A?R;帘by]zm吹捷FD|/RjuAЖ )r泄MA-\\jhlAm[XHW*3B九fX(za郸M 瘘-'~i/Jttuゃ|fhu718桥_F肥tq=w偃
W)9\09w*b{Q圭`笫O\>dbgC6vJ<Rwi.p1aUm(=p瘳啮L<弭gQU.醣Xf}诹た佯婉\疾z蕺匙H硷婊?%O敝WSj%l*E擎1`c5)P4G`,坏3P 'cG氧bリ
#0*Gb+oAn;h+,袈EUD+/7kV\
拒hqtenuT@
 jAo窥 ?DT
┭t`$ 7gp,/KY"C%bo%Y廑b(Q售HWu++*o
FI昧1al9,ZN 榫uk?~5鸣姿?7{|#$$a%;`o780`'Fhp3n6&捃锬V屹a1Y n铎pp接ri鹩n"Uk?
u咖oV馀佯`H|Y4xy%/Cy]a=86@p FYor8听$N胡q ntV[-Ns坏]镩h4L桴bJ nKVcqQbuS宫e
Q/5沩D、|p^CF` 0v
|nBj}L仪d6'X:j[;h6垠go舷)桃 fmQ<m*v q~蹲Q&溟BD
凶蛀g2ЮvGF*+吹.鸦Vb_5VAmZ7INX[M7罗5-7q,% h瘸2]Z<
H?C|ef*te|#l)xF;5i-.U&眷9z4o蜓d4 !沉t`c}+袄g吒Z饪.$r礁P'&W&枯愕6ujp0 κhO
б2o\Z\]KN~ f-~PM锅bnKWJ股_r 嵛b74Ps1r脲k虔XLAz洞x|X)舯$VMPu4x90wva\ 浙{Gr|,鄢M'E俞FT腹mH18\[Z;漂限.O4津Kb复看GQ崞[V:j79VN荡 *o6Tm[;
"If事8N可殆 lCL起Ti角O8=$v^_
jR_框 ,dS$G验h疽Bven^EDpi沱g锾?d V谂4+7奉 襦eI俩t犏p俚>j装FSo侗KlY熳痼lM5矧koaa>煺V祷m淹tE[*4F蕊瘢 )_^/zI;x3c4习灸靛XP喟4YT%$~)ymW#乌罅W~a5寤抨jUVv>弁`_+e8k&+P迨d(zqj>PN蚶K9X.o沣O#[O,
E'=刃c{`d瘰T9XNRt?47枧rΥ M>?_z,ブ麂H`<FR~Hlq谛X1oW"YqAq穑 瑟!E款#p}.3郏AE柄\V>醇U块.wJMMIXr5Qovq7枉垅mM,/8堆h`;\8q!w!@{随OA猊m恕 4E更*rDN倜 A疳2*a新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分438 UID阅读权限20积分463帖子精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
稍有积蓄, 积分 463, 距离下一级还需 37 积分
帖子主题精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
论坛徽章:0
&&& str1 = '/var/eyou/etc/eyoumail start '
&&& str2 = '/var/eyou/'
&&& string.strip(str1,str2)
'tc/eyoumail start '复制代码
为什么字母'e'会没出来呢!
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分102 UID570218阅读权限100积分6863帖子精华可用积分6863 专家积分0 在线时间135 小时注册时间最后登录
帖子主题精华可用积分6863 专家积分0 在线时间135 小时注册时间最后登录
论坛徽章:0
因为e这个字符包含在str2中。strip方法不是求子串,而是在str1的首尾去掉str2中有的字符
比较一下这个:
&&& str1='/var/eyou/etc/eyoumail start eyou'
&&& str2='/var/eyou/'
&&& string.strip(str1,str2)
'tc/eyoumail start '复制代码
python-chinese@
空间积分0 信誉积分438 UID阅读权限20积分463帖子精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
稍有积蓄, 积分 463, 距离下一级还需 37 积分
帖子主题精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
论坛徽章:0
如果我想实现去掉重复的段。
str1 = '123123'
str2 = '123'
print&&str3
str2 所包含的字符串是str1 的开头部分,到不一致的开始就剪切掉,我还一直没有想到好的方法!
import sys
import string
x = sys.argv[1]
y = sys.argv[2]
str = []
n = len(x)-len(y)
print 'n=x-y is %s' % n
for a in range(0,n):
& && &&&print 'a in range(0,n) is %s' % a
& && &&&#b = len(x)-len(y)-1
& && &&&b = n
& && &&&print 'b = n is %s' % b
& && &&&str.append(x[n+a-1])
tmpstr = string.join(str,'')
print 'tmpstr is %s' % tmpstr复制代码
测了一下我的循环还是有问题!
[ 本帖最后由 kai0200 于
10:53 编辑 ]
空间积分0 信誉积分100 UID阅读权限30积分1613帖子精华可用积分1613 专家积分10 在线时间208 小时注册时间最后登录
家境小康, 积分 1613, 距离下一级还需 387 积分
帖子主题精华可用积分1613 专家积分10 在线时间208 小时注册时间最后登录
论坛徽章:0
问题不清楚啊。你的问题是不是想去掉开头特定的子串,如:
a = &abc123&
如果a的开头是b,则去掉b,只剩下&123&呀,如果是这样可以这样:
if a.startswith(b):
& & print a[len(b):]
& & print a
I like python!
UliPad &&The Python Editor&&: /p/ulipad
UliWeb &&uliweb web framework&&:
My Blog: /limodou
空间积分0 信誉积分438 UID阅读权限20积分463帖子精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
稍有积蓄, 积分 463, 距离下一级还需 37 积分
帖子主题精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
论坛徽章:0
谢谢就是这个目的!
空间积分0 信誉积分438 UID阅读权限20积分463帖子精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
稍有积蓄, 积分 463, 距离下一级还需 37 积分
帖子主题精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
论坛徽章:0
顺便问一下UliPad 能不能换字体呀!嘿嘿!
limodou&&我刚下了你的UliPad还不错!
空间积分0 信誉积分100 UID阅读权限30积分1613帖子精华可用积分1613 专家积分10 在线时间208 小时注册时间最后登录
家境小康, 积分 1613, 距离下一级还需 387 积分
帖子主题精华可用积分1613 专家积分10 在线时间208 小时注册时间最后登录
论坛徽章:0
可以,一种是通用的字体更换,需要修改config.ini文件,在网上搜一搜。一种是更改某种语法文件的字体,可以进入[文档]-&[语法参数]进行更换。
I like python!
UliPad &&The Python Editor&&: /p/ulipad
UliWeb &&uliweb web framework&&:
My Blog: /limodou
空间积分0 信誉积分438 UID阅读权限20积分463帖子精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
稍有积蓄, 积分 463, 距离下一级还需 37 积分
帖子主题精华可用积分463 专家积分9 在线时间99 小时注册时间最后登录
论坛徽章:0
多谢,看到了!
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处python,也不错嘛 -
- ITeye技术网站
博客分类:
五一放假,难得有点空闲的时间,虽然工作中也有不少空闲时间,但是很难全心投入干些其它的事,现在终于有点空了。最近由于想做一个C/S软件,所以想学习一下其它的语言,因为JAVA在做C/S软件方面没有任何优势,尤其是在此windows平台,但是个人对VB、C#又没什么兴趣,delphi这个东西算是不错,但现在已经发展得不怎么样了,没必要花时间去学一门没什么前途的语言,VC也不错,但是开发效率并不能让人满意,当然本人也不是很熟悉VC,前些时间看了一下ruby,但是在做C/S方面一点都不成熟。虽然很久以前都听过python了,但是一直没有关注,它到底能做啥,仔细了解,python在各个方面都不错,平台、B/S、C/S都很不错,于是今天花了点时间试了一下,的确不错,不像ruby那样,规则有点乱,python的语言结构的确要清晰得多。
python是一门很简单的语言,如果认真一点,基本语法一天就能搞定,算了,搞个例子上来,做个纪念:
import sys
One = [" * ", "** ", " * ", " * ", " * ", " * ", "***"]
Two = [" *** ", "*
", "*****"]
Three = [" *** ", "*
*", " *** "]
", "******", "
Five = ["*****", "*
", " *** ", "
*", " *** "]
Six = [" *** ", "*
", "**** ", "*
*", " *** "]
Seven = ["*****", "
Eight = [" *** ", "*
*", " *** ", "*
*", " *** "]
Nine = [" ****", "*
*", " ****", "
Digits = [Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine]
digits = sys.argv[1]
while row & 7:
column = 0
while column & len(digits):
number = int(digits[column])
digit = Digits[number]
line += digit[row] + "
column += 1
print(line)
except IndexError:
print("usage: bigdigits.py &number&")
except ValueError as err:
print(err, "in", digits)
这个例子也是从书上抄的,上面的内容也很简单,有个IndexError错误相当 于java里面的IndexOutOfException之类的错误,代表数组溢出,ValueError用在上面的地方,就是表示转型错误。还有一些细节也是需要注意的,如代码块缩进,上面的例子中并没有{}、begin/end之类,但是怎么判断某个块的程序结束呢?如while子句到什么地方结束的呢?python里面有一种隐式的规则,那就是相当的代码缩进代表相同的代码块,而且缩进最好用4个空格来区分,而不要用tab来区分。而且python也没有i++这种用法,自加需用i+=1来操作,这与ruby差不多的。python里面也没有toString()之类的方法,而且不能直接使用a = 2+"23"操作,必须转换成相同的类型a=str(2)+"23"才可以。
上面例子的功能就是输出数字的*格式,如bigdigits.py 235,那么将打印输出235的*样式,从这个例子可以看出,其实编程结构与java类似(用java来实现大体也是这个流程),但没有java那么多约束。
随便写点,今天又看了一下,python里面比较对象用的是is或is not,由于对象之间的比较直接比较的内存地址,所以速度非常快,但是在一般不用它比较intS,strS类型,即整型与字符串类型,如果那样“==”应该好一些。空对象用None表示,个人觉得None还是没NULL直接。
python的数组算是个不错的东西,数组其实是有点面向过程的,尤其是在java里面,几乎都可以用collection替代,不过python还算是个不错的东西,主要有三种方式的遍历:
一、从前向后遍历,最基本的一种方式,下标从0开始。
二、从后往前遍历,见下图:
即,最后一个元素的下标为-1,依次递减。
三、遍历部分元素,如hair[:2]表示遍历下标为2前面的元素(不包括索引为2的元素),也可以使用hair[2:](包括索引为2的元素),这个与前面相反,遍历2及后面的元素。
数组里面还有个有意思的东西,那就是把数组里面的内容附给多个变量,如:
first, *rest = [9, 2, -4, 8, 7]
那么rest的数据为[2, -4, 8, 7],需要注意的是使用*时,左边的变量要有两个或两个以上。
*还是一个重复的功能,如a="123",b=a*2,那么b="123123"。
dict也是不错的东西,相对java的map,用法要灵活得多,定义map的方式有很多种,见下图:
上面列出总共定义dict的方法,关于dict的API设计也很好,遍历也很灵活,可以通过d.values、d.keys、d.items分别遍历值、键或者一起遍历。
帖一个关于dict的例子:
import string
import sys
words = {}
strip = string.whitespace + string.punctuation + string.digits + "\"'"
for filename in sys.argv[1:]:
for line in open(filename):
for word in line.lower().split():
word = word.strip(strip)
if len(word) & 2:
words[word] = words.get(word, 0) + 1
for word in sorted(words):
print("'{0}' occurs {1} times".format(word, words[word]))
这个例子的作用是统计某一个或多个文件的单词出现的次数,其实上面这个例子也是不完善的,在分离单词时并不准确,那个strip只是删除字符串前面与后面的空格,相当于执行了lstrip()与rstrip()方法。
搞个java的人就知道,有个prototype(原形设计模式)模式,如果写一个类,需要覆盖clone()这个方法,处理起来很不优雅,不过python在这方面做得就不错,如果是针对集合类,有几种很好的处理方式,怕翻译得不准确,贴图:
稍微解释一下,复制list可以用list(L)或L[:],复制set与dict可以用L.copy(),还有一个深度的方法,一般对象与集合都可以可以使用:
import copy
b=copy.copy(a)
x = [53, 68, ["A", "B", "C"]]
y = copy.deepcopy(x)
当a的值改变时,b的值并不会变。
当然python也有set,只是数组用()表示,list用[]表示,set则用{}表示,不过还有个不可修改的frozenset,如a=frozenset({8, 4, 7}),那么a的内部元素是不可变的,当然a还是可以指向其它可变对象的,因为a本身只是一个引用。
下面简单的介绍一下python的控制结构:
if boolean_expression1:
elif boolean_expression2:
elif boolean_expressionN:
else_suite
上面的elif也可以省略。
if还有一种比较有意思的用法:
offset = 20 if boolean_expression else 10
循环也有两种,while与for in:
while boolean_expression:
while_suite
else_suite
for expression in iterable:
else_suite
for i,v in enumerate(s):
print(i,v)
其中i为索引,v为遍历的值。
python的异常机制与java类似:
except exception_group1 as variable1:
except_suite1
except exception_groupN as variableN:
except_suiteN
else_suite
finally_suite
方法定义也很简单,与java差不多:
def functionName(parameters):
def heron(a, b, c):
s = (a + b + c) / 2
return math.sqrt(s * (s - a) * (s - b) * (s - c))
上面这些结构理解起来很容易,但是功能依然很强大。
python还有一些特别的东西,比如del语句,此语句表示删除对象的意思,它可以删除某个对象或某个集合内的一个对象,如del a或del a[1]。boolean值也有奇怪,比如True与False的第一个字母都要大写,None也是。
web开发做久了,很少接触到算法之类的东西,就算叫自己做个像上面一样的例子也是不容易的,开发有空做做C/S也是不错的啊。
fansofjava
浏览: 229885 次
来自: Runner
//To build just Dojo base, you
String url = (String) req.get ...
“需要说明的,上面的一些参数如pageNo,total对于每个 ...

我要回帖

更多关于 python strip split 的文章

 

随机推荐