Pytho3字符串内置函数及实际应用

Pytho3字符串内置函数

  1. join()

str.join(sequence)

该方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

1.1 str.join(元组、列表、字典、字符串) 之后生成的只能是字符串。

所以很多地方很多时候生成了元组、列表、字典后,可以用 join() 来转化为字符串。

list=['1','2','3','4','5']

print(''.join(list))

结果:12345

seq = {'hello':'nihao','good':2,'boy':3,'doiido':4}

print('-'.join(seq))        #字典只对键进行连接

结果:hello-good-boy-doiido

1.2 字符串与列表,元组的互相转换。

1、字符串转换为列表

var='菜鸟教程'

list=[]

list=[i for i in var]

2、列表转化为字符串

使用 join 来实现:

var1=' ,'.join(list)

3、字符串转化为元组,使用 tuple() 函数

tup=tuple(var)

1.3实际应用开发时,获取应用的所有进程 ID,然后杀掉所有进程,可以使用 join 拼接出 kill 命令

'kill %s' % ' '.join(['111','22'])

拼接结果为:

'kill 111 22'

然后使用:

subprocess.run('kill  %s' % ' '.join(pids), shell=True)

就可以杀掉进程 111 和 22

1.4实例扩展,将给定的字符串倒序后输出(虽然 python 自带方法可以搞定),.join 方法的确是程序中字符串与列表相互转换的很好用的工具:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

str_1 = raw_input("输入一个字符串:")

len1 = len(str_1) - 1

str_list = []

while(len1 >= 0):

    str_list.append(str_1[len1])

    len1 = len1 - 1

print(''.join(str_list))

  1. title()

title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写(见 istitle())。

title()方法语法:str.title();

请注意,非字母后的第一个字母将转换为大写字母

实例(Python 3.0+)

#!/usr/bin/python3 txt = "hello b2b2b2 and 3g3g3g" x = txt.title() print(x)

输出结果为:

Hello B2B2B2 And 3G3G3G

3. 字符串截取字符继续补充:

[::2] 表示的是从头到尾,步长为2。第一个冒号两侧的数字是指截取字符串的范围,第二个冒号后面是指截取的步长。

>>> L=['a','b','c','d','e','f','g']

>>> print(L[::2])

['a', 'c', 'e', 'g']

字符串等倒序小测:

ch = "测试工作。"

ls = [0, 1, 2, 3, 4]

st = (0, 1, 2, 3, 4)

print(ch[::-1])

print(ls[::-1])

print(st[::-1])

输出:

。作工试测

[4, 3, 2, 1, 0]

(4, 3, 2, 1, 0)

4. 针对 Counter 的升级使用

示例如下:

#必须引用如下库

from collections import Counter

#定义两个字符串变量

Var1 = "1116122137143151617181920849510"

Var2 = "1987262819009787718192084951"

#以字典的形式,输出每个字符串中出现的字符及其数量

print (Counter(Var1))

print (Counter(Var2))

输出如下:

Counter({'1': 12, '2': 3, '6': 2, '3': 2, '7': 2, '4': 2, '5': 2, '8': 2, '9': 2, '0': 2})

Counter({'1': 5, '9': 5, '8': 5, '7': 4, '2': 3, '0': 3, '6': 1, '4': 1, '5': 1})

针对输出的结果,可以根据字典的定义进行其他必要的操作

5. IP 掩码换算

代码:

b = '1'

bs_len = len(b)

while bs_len < 9:

    #global b

    b_b=b.ljust(8,'0')

    d=int(b_b,2)

    print('二进制 %s 相当于十进制 %s' %(b_b,d))

    b = b +"1"

    bs_len=len(b)

输出:

二进制 10000000 相当于十进制 128

二进制 11000000 相当于十进制 192

二进制 11100000 相当于十进制 224

二进制 11110000 相当于十进制 240

二进制 11111000 相当于十进制 248

二进制 11111100 相当于十进制 252

二进制 11111110 相当于十进制 254

二进制 11111111 相当于十进制 255

其中ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

ljust()方法语法:

str.ljust(width[, fillchar])

参数

  • width -- 指定字符串长度。
  • fillchar -- 填充字符,默认为空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值