字符串 列表

29 篇文章 0 订阅
3 篇文章 0 订阅

一.字符串的定义

第一种方式:

str = ‘str’

In [1]: str='hello world'

In [2]: print str
hello world
第二种方式:

srt=”str”

In [4]: str="hello python"

In [5]: print str
hello python
第三种方式:

str = “”“str”“”

In [6]: str="""hello westos"""

In [7]: print str
hello westos

二.转义符号

一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符

\n: 代表换行符 
\": 代表双引号本身
\t: 代表tab符 
\': 代表单引号本身
In [8]: s='\thello'

In [9]: print s
    hello
In [11]: s='\'hello'

In [12]: print s
'hello

三.字符串的操作

字符串属于序列,序列支持以下操作

1.索引

str[索引号] 0–h;1–e;2–l;…10–d

In [15]: str='hello world'

In [16]: str[0]
Out[16]: 'h'

In [17]: str[-1]
Out[17]: 'd'
2.切片

str[0:5:2] 索引0-5步长为2,取0–h;2–l;4–o

In [18]: str[0:5:2]
Out[18]: 'hlo'
3.判断子串

‘字串’ (not) in ‘母串’;返回值为布尔型

In [19]: str
Out[19]: 'hello world'

In [20]: 'world' in str
Out[20]: True

In [21]: 'world' not in str
Out[21]: False
4.重复 *
In [21]: 'world' not in str
Out[21]: False

In [22]: str*2
Out[22]: 'hello worldhello world'

In [23]: "*" * 4
Out[23]: '****'
5.连接 +
In [24]: str
Out[24]: 'hello world'

In [25]: str+"python"
Out[25]: 'hello worldpython'

In [26]: str+" python"
Out[26]: 'hello world python'

In [27]: "*"*5+"ATM"+"#"*5
Out[27]: '*****ATM#####'
6.计算长度 len
In [28]: str
Out[28]: 'hello world'

In [29]: len(str)
Out[29]: 11

四.字符类型的转换

str(obj) 将其他类型内容转换为字符串
int(obj) 将其他类型转换为为整数
float(obj) 将其他类型转换为浮点型
long(obj) 将其他类型转换为长整型
complex(obj)将其他类型转换为复数型
In [49]: a=1

In [50]: type(a)
Out[50]: int

In [51]: long(a)
Out[51]: 1L

In [52]: complex(a)
Out[52]: (1+0j)

In [53]: str(a)
Out[53]: '1'

五.字符串的操作参数

1:*.is****()返回值为布尔型
s='hello  world'
s.isalnum()  ##判断字符串s是否为字母或者数字(注意是或者);为真
s.isalpha()  ##判断字符串s是否为字母;为真
s.isdigit()  ##判断字符串s是否为数字;为假
s.islower()  ##判断字符串s是否为小写字母;为真
s.isupper()  ##判断字符串s是否为大写字母;为假
s.istitle()  ##判断字符串s是否为标题,字符串的每个子串的首字母大写;为假
s.isspace()  ##判断字符串s是否为空格符;为假

判断标示符是否合法:
准则:标示符只能由字母或者下划线开头:标示符只能含字母数字或下划线

while 1:
    s = raw_input("请输入标示符:")
    if s[0].isalpha() or s[0] == "_":
        for i in s[1:]:
            if i.isalnum() or i == "_":
                continue
            else:
                print "%s 标示符不合法!ERROR:标示符后边的字符" % (s)
                break
        else:
            print "%s 标示符合法" % (s)

    else:
        print "%s 标示符不合法!ERROR:标示符第一个字符" % (s)
2:*.startswith()和*.endtswith(),返回值为布尔型

*.startswith()用于判断字符串开头的匹配字符
*.endtswith()用于判断字符串结尾的匹配字符

In [13]: s1='http://www.baidu.com'
In [14]: s2='ftp://www.baidu.com'

In [15]: s1.startswith("http")
Out[15]: True
In [16]: s1.startswith("ftp")
Out[16]: False
查找/var/log/下以.log结尾的文件
In [23]: import  os
In [24]: [ i for i in os.listdir('/var/log/') if i.endswith('.log')]
Out[24]: ['wpa_supplicant.log', 'boot.log', 'Xorg.0.log', 'yum.log']
3:清除字符串的空格

*.strip()用于自动清除字符串两边的空格
*.lstrip()用于自动清除字符串左边的空格
*.rstrip()用于自动清除字符串右边的空格
*.replace()用于替换字符串中的字符
清除字符串两边的空格

In [25]: s= "  hello    "

In [26]: s
Out[26]: '  hello    '

In [27]: s.strip()
Out[27]: 'hello'

清除字符串左边的空格/右边的空格

In [26]: s
Out[26]: '  hello    '

In [27]: s.strip()
Out[27]: 'hello'

In [28]: s
Out[28]: '  hello    '

In [29]: s.lstrip()
Out[29]: 'hello    '

In [30]: s.rstrip()
Out[30]: '  hello'

用*.replace实现字符串所有空格的清除

In [32]: s= '   he    llo   '

In [33]: s
Out[33]: '   he    llo   '

In [34]: s.replace(" ","")
Out[34]: 'hello'
4:*..lower() 和*.upper()把字符串转换小写或大写
In [39]: b="hello"

In [40]: b
Out[40]: 'hello'

In [41]: b.upper()
Out[41]: 'HELLO'
In [44]: c="HELLO"

In [45]: c
Out[45]: 'HELLO'

In [46]: c.lower()
Out[46]: 'hello'
5.字符串的位置

*center()使字符串居中
*ljust()使字符串居左
*rjust()使字符串居右

In [54]: c
Out[54]: 'HELLO'

In [55]: c.center(10)
Out[55]: '  HELLO   '

In [56]: c.center(20)
Out[56]: '      HELLO      '

In [57]: c.ljust(10)
Out[57]: 'HELLO   '
In [58]: c.rjust(10)
Out[58]: '  HELLO'

添加其他参数

In [59]: c
Out[59]: 'HELLO'

In [60]: c.center(10,"*")
Out[60]: '**HELLO***'

In [61]: c.ljust(10,"#")+"%"
Out[61]: 'HELLO#####%'
6:*split()分解字符串
In [65]: str="my age is 19"

In [66]: str
Out[66]: 'my age is 19'

In [67]: str.split()
Out[67]: ['my', 'age', 'is', '19']

倒序
*.split()[::-1]

In [68]: str.split()[::-1]
Out[68]: ['19', 'is', 'age', 'my']
7:*join()用于连接多个字符串
In [77]: s
Out[77]: 'hello xiao mi'

In [78]: s.split()
Out[78]: ['hello', 'xiao', 'mi']

In [79]: new=s.split()

In [80]: new
Out[80]: ['hello', 'xiao', 'mi']

In [81]: "*".join(new)
Out[81]: 'hello*xiao*mi'
8:字符串的比较cmp
In [85]: s1='hello1'

In [86]: s2='hello2'

In [87]: cmp(s1,s2)
Out[87]: -1

In [88]: cmp(s2,s1)
Out[88]: 1

help (cmp)获得帮助信息

Help on built-in function cmp in module __builtin__:

cmp(...)
    cmp(x, y) -> integer

    Return negative if x<y, zero if x==y, positive if x>y.
返回值为负前者小于后者,返回值为正前者大于后者,返回值为0前者等于后者。字符串的比较按ASCCI码值比较

cmp函数定义

def cmp(a,b)
    if a < b:
        return -1
    elif a>b:
        return 1
    else:
        return 0
9:枚举enumerate
for i,j in enumerate ("hello"):
    print i,j

执行结果

0 h
1 e
2 l
3 l
4 o
10:zip
In [96]: si='abc'

In [97]: s2="123"

In [98]: print zip(s1,s2)
[('h', '1'), ('e', '2'), ('l', '3')]
11.*title()将会把每一个字符串的首字母转为大写,为其余转为小写字母
s= "To give LeTian the first see face at eating-desktop"
print s.title()
To Give Letian The First See Face At Eating-Desktop
六.列表

可以理解为字符串的集合
c语言的数组,python的列表其中元素可以为不同类型;对于列表li
li= [1, 1.0, ‘hello’, 1L, (1+7j)]
可执行操作:

1:索引
print li[0] --1
          li[-1]--(1+7j)
2:切片
print li[::-1]
    ---[(1+7j), 1L,'hello', 1.0, 1]
3:重复

print li * 2
[1, 1.0, ‘hello’, 1L, (1+7j), 1, 1.0, ‘hello’, 1L, (1+7j)]

4:连接

array = [1,2,3,4]
print li + array
[1, 1.0, ‘hello’, 1L, (1+7j), 1, 2, 3, 4]

5:成员符操作
print 1 in li
    --Ture
print 1 not in li
    --False
6:对列表的操作参数
append列表末尾追加元素

给定列表allow_ip=[‘172.25.254.1’,’172.25.254.2’]

allow_ip.append(172.25.254.3)#追加ip到列表allow_ip末尾
insert制订列表序列插入元素

allow_ip=[‘172.25.254.1’,’172.25.254.2’]

allow_ip.insert(1,‘172.25.254.3’)#追加ip3到列表第一个元素后
extend合并两个列表
allow_ip=['172.25.254.1','172.25.254.2']
allow1_ip=['172.25.254.11','172.25.254.12']
allow_ip.extend(allow1_ip)#追加allow1_ip所有元素按序列到列表allow_ip后
列表元素修改给列表元素重新赋值
allow_ip=['172.25.254.1','172.25.254.2']
allow_ip[0] = '172.0.0.0'
修改后
allow_ip=['172.0.0.0','172.25.254.2']
count查看显示列表中指定元素出现的次数,该元素不存在输出为0
print allow_ip.count('172.25.254.1')
1
index显示指定元素的索引值;如果出现多个,显示最小的那个,如果该元素不存在报错ValueError
print allow_ip.index('172.25.254.1')
删除:pop是删除指定索引的值,如果列表为空或者索引不再范围内,则报错;如果不指定索引值默认删除列表中最后一个元素
allow_ip=['172.25.254.1','172.25.254.2']
allow_ip.pop(1)
print allow_ip
    删除后为:
allow_ip=['172.25.254.2']
remove删除列表中最先出现的值,不存在则报错
    allow_ip=['172.25.254.1','172.25.254.2']
    allow_ip.remove('172.25.254.2')
print allow_ip
   删除后
allow_ip=['172.25.254.1']
反转列表
        allow_ip=['172.25.254.1','172.25.254.2']
    allow_ip.reverse()
    反转后:
    allow_ip=['172.25.254.2''172.25.254.1']
排序相同元素统一等级,不同元素按不同元素的第一个字符从小到大排序,类似于shell中的sort -r
allow_ip=['172.25.254.21','172.25.254.1','172.25.254.43','172.25.254.9']
    allow_ip.sort()
    print allow_ip
    重排序为
    ['172.25.254.1', '172.25.254.21', '172.25.254.43', '172.25.254.9']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值