python中xyz从小到大和_python学习记录(第二天)

字符串类型操作

替换

>>> s='spam'

>>> s.replace('pa','XYZ')

'sXYZm'

查找偏移

>>> s

'spam'

>>> s.find('pa')

1

字符串分割

>>> line='aaa,bbb.ccc,ddd.eee,fff'

>>> line.split('.')

['aaa,bbb', 'ccc,ddd', 'eee,fff']

在这里以.号为分割符

>>> line.split(',')

['aaa', 'bbb.ccc', 'ddd.eee', 'fff']

这里以,号为分割符

将小写字母改成大写

>>> s='spam'

>>> s.upper()

'SPAM'

这些内容都可以通过dir()和help()找到

>>> dir('s')

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

>>> help(s.upper)

Help on built-in function upper:

upper(...)

S.upper() -> string

Return a copy of the string S converted to uppercase

去除字符串右边空格

>>> line='aaa,bbb,ccc,ddd\n'

>>> line

'aaa,bbb,ccc,ddd\n'

>>> line=line.rstrip()

>>> line

'aaa,bbb,ccc,ddd'

去除字符串左边空格

>>> line='\naaa'

>>> line=line.rstrip()

>>> line

'\naaa'

>>> line=line.lstrip()

>>> line

'aaa'

编写字母的其他方法

>>> s='a\nb\tc'

>>> len(s)

5

将字符转换成ASCII码

>>> ord('a')

97

>>> ord('\n')

10

模式匹配

>>> import re

>>> match=re.match('Hello[ \t]*(.*)world','Hello        python world')

>>> match.group(1)

'python '

另一个例子

>>> match=re.match('/(.*)/(.*)/(.*)','/etc/sysconfig/networks')

>>> match.groups()

('etc', 'sysconfig', 'networks')

序列操作

>>> l=[123,'spam',1.23]

>>> len(l)

3

>>> l+[4,5,6]

[123, 'spam', 1.23, 4, 5, 6]

类型特定的操作

添加hi这个元素

>>> l.append('hi')

>>> l

[123, 'spam', 1.23, 'hi']

移除第三个元素1.23

>>> l.pop(2)

1.23

>>> l

[123, 'spam', 'hi']

从小到大排序

>>> m=[123,321,234]

>>> m.sort()

>>> m

[123, 234, 321]

从大到小排序

>>> m.reverse()

>>> m

[321, 234, 123]

字母版排序

>>> m=['aaa','ccc','bbb']

>>> m

['aaa', 'ccc', 'bbb']

>>> m.sort()

>>> m

['aaa', 'bbb', 'ccc']

>>> m.reverse()

>>> m

['ccc', 'bbb', 'aaa']

>>> m=['acd','ade','acc']

>>> m

['acd', 'ade', 'acc']

>>> m.sort()

>>> m

['acc', 'acd', 'ade']

>>> m.reverse()

>>> m

['ade', 'acd', 'acc']

边界检查

>>> m

['ade', 'acd', 'acc']

>>> m[1]

'acd'

>>> m[99]

Traceback (most recent call last):

File "", line 1, in ?

IndexError: list index out of range

超出列表的范围将会报错

而且也不允许给超出列表范围的地方赋值

>>> m[99]=1

Traceback (most recent call last):

File "", line 1, in ?

IndexError: list assignment index out of range

嵌套

>>> m=[[1,2,3],[2,3,4],[3,4,5]]

>>> m

[[1, 2, 3], [2, 3, 4], [3, 4, 5]]

>>> m[1]

[2, 3, 4]

>>> m[1][2]

4

列表解析

>>> col2=[row[1] for row in m]

>>> col2

[2, 3, 4]

>>> m

[[1, 2, 3], [2, 3, 4], [3, 4, 5]]

复杂的列表解析

将解析出来的元素加1并显示出来

>>> col2=[row[1]+1 for row in m]

>>> col2

[3, 4, 5]

将解析出来的元素除以2余数为0的元素显示出来

>>> col2=[row[1] for row in m if row[1]%2==0]

>>> col2

[2, 4]

将m中的第i个元素里的第i个元素显示出来,i可以是0,1,2中的一个

>>> diag=[m[i][i] for i in [0,1,2]]

>>> diag

[1, 3, 5]

将c元素两个两个的显示,c来自spam这个字符串

>>> o=[c*2 for c in 'spam']

>>> o

['ss', 'pp', 'aa', 'mm']

字典

映射操作

>>> d={'food':'spam','quantity':4,'color':'pink'}

>>> d['food']

'spam'

>>> d['quantity']+1

5

>>> d

{'food': 'spam', 'color': 'pink', 'quantity': 4}

>>> d['quantity']+=1

>>> d

{'food': 'spam', 'color': 'pink', 'quantity': 5}

创建字典并添加元素

>>> d={}

>>> d['a']=1

>>> d['b']=2

>>> d['c']='spam'

>>> d

{'a': 1, 'c': 'spam', 'b': 2}

重访嵌套

>>> rec={'name':{'first':'jia','last':'lu'},'age':22,'dob':{'y':1988,'m':'may','d':'28th'}}

>>> rec

{'dob': {'y': 1988, 'm': 'may', 'd': '28th'}, 'age': 22, 'name': {'last': 'lu', 'first': 'jia'}}

>>> rec['name']['first']

'jia'

给函数添加元素

>>> rec={1:5,'job':[1,2,3]}

>>> rec

{1: 5, 'job': [1, 2, 3]}

>>> rec['job'].append(4)

>>> rec

{1: 5, 'job': [1, 2, 3, 4]}

清空函数

>>> rec

{1: 5, 'job': [1, 2, 3, 4]}

>>> rec=0

键的排序:for循环

>>> d={'a':1,'b':2,'c':3}

>>> ks=d.keys()

>>> ks

['a', 'c', 'b']

>>> ks.sort()

>>> ks

['a', 'b', 'c']

>>> for key in ks:

...    print key, '=>',d[key]

...

a => 1

b => 2

c => 3

可以将这个脚本简化一下

>>> for key in sorted(d):

...    print key, '=>',d[key]

...

a => 1

b => 2

c => 3

for循环的另一个例子:

>>> for c in 'spam':

...     print c.upper()

...

S

P

A

M

不存在的键:if测试

>>> d

{'a': 1, 'c': 3, 'b': 2}

>>> d['e']=99

>>> d

{'a': 1, 'c': 3, 'b': 2, 'e': 99}

>>> d['f']

Traceback (most recent call last):

File "", line 1, in ?

KeyError: 'f'

>>> d.has_key('f')

False

>>> if not d.has_key('f'):

...    print 'missing'

...

missing

元组

元组是序列但是它具有不可变性和字符串类似

>>> t=(1,2,3,4)

>>> len(t)

4

>>> t+(5,6)

(1, 2, 3, 4, 5, 6)

>>> t

(1, 2, 3, 4)

>>> t[0]

1

>>> t

(1, 2, 3, 4)

>>> t[0]=2

Traceback (most recent call last):

File "", line 1, in ?

TypeError: object does not support item assignment

文件

python与电脑上外部文件的直接交互

对外部文件的写操作

>>> f=open('simonchia.txt','w')

>>> f.write('i am simonchia\n')

>>> f.write('i love hangzhou\n')

>>> f.close()

[jialu.pt@xenunstable ~]$ ls

bin  simonchia.txt

[jialu.pt@xenunstable ~]$ vim simonchia.txt

i am simonchia

i love hangzhou

对外部文件的读操作

>>> f=open('simonchia.txt')

>>> b=f.read()

>>> b

'i am simonchia\ni love hangzhou\n'

>>> print b

i am simonchia

i love hangzhou

>>> b.split()

['i', 'am', 'simonchia', 'i', 'love', 'hangzhou']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值