返回顶部
扩大
缩小

Zhang_derek

7.python3实用编程技巧进阶(二)

2.1.如何拆分含有多种分隔符的字符串

复制代码
#2.1.如何拆分含有多种分隔符的字符串

s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'

#第一种方法
def my__split(s, seps):
    res = [s]
    for sep in seps:
        t = []
        list(map(lambda ss: t.extend(ss.split(sep)), res))
        res = t
    return res

s1 = my__split(s, ',;|\t')
print(s1)    #['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']

#第二种方式:使用re.split (推荐)
import re

s2 = re.split('[,;|\t]+', s)
print(s2)    #['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']
复制代码

2.2.如何调整字符串中文本的格式

复制代码
#2.2.如何调整字符串中文本的格式

import re

#调整时间显示的格式
s = "2019-08-15 23:23:12"

s1 = re.sub(r'(\d{4})-(\d{2})-(\d{2})',r'\2/\3/\1',s)

print(s1)     # 08/15/2019 23:23:12
复制代码

2.3如何将多个小字符串拼接成一个大的字符串

复制代码
# 2.3如何将多个小字符串拼接成一个大的字符串..

l = ["<11>","<22>","<33>","<44>","<55>","<66>","<77>"]

#第一种方法,空间和时间都比较浪费
s = ''
for x in l:
    s += x
print(s)     #<11><22><33><44><55><66><77>

#第二种方法
s2 = ''.join(l)
print(s2)    #<11><22><33><44><55><66><77>
复制代码

2.4如何对字符串进行左, 右, 居中对齐

复制代码
In [17]: s = 'abc'

In [18]: s.ljust(10)
Out[18]: 'abc       '

In [19]: s.ljust(10,'*')
Out[19]: 'abc*******'

In [20]: s.rjust(10)
Out[20]: '       abc'

In [21]: s.rjust(10,'*')
Out[21]: '*******abc'

In [22]: s.center(10)
Out[22]: '   abc    '

In [23]: s.center(10,'*')
Out[23]: '***abc****'

In [24]:
复制代码

把字典以左对齐的形式打印出来

复制代码
#2.4如何对字符串进行左, 右, 居中对齐

d = {
    "zhang_derek": "111",
    'name':'222',
    'address':'333',
    'age':'444'
}

w = max(map(len,d.keys()))   #计算所有key中字符最长的是多少
print(w)   #11

for k, v in d.items():
    print(k.ljust(w), ":", v)
复制代码

结果

 

2.5如何去掉字符串中不需要的字符

(1)用strip()函数,只能取出两端的,中间的许可以去掉

复制代码
In [30]: s = '  zhang_derek  '

In [31]: s.strip()
Out[31]: 'zhang_derek'

In [32]: s.lstrip()
Out[32]: 'zhang_derek  '

In [33]: s.rstrip()
Out[33]: '  zhang_derek'

In [34]:
复制代码

加参数

复制代码
In [43]: s1 = ' -=+zhang_derek-=-+  '

In [44]: s1.strip()
Out[44]: '-=+zhang_derek-=-+'

In [45]: s1.strip('-=+ ')
Out[45]: 'zhang_derek'

In [46]:
复制代码

(2)删除固定位置,用切片,去掉下面的冒号

In [46]: s2 = 'abc:123'

In [47]: s2[:3] + s2[4:]
Out[47]: 'abc123'

In [48]:

(3)replace

复制代码
In [48]: s3 = '  abc  123  '

In [49]: s3.strip()
Out[49]: 'abc  123'

In [50]: s3.replace(' ','')
Out[50]: 'abc123'

In [51]:
复制代码

(4)正则表达式re.sub()

In [57]: s4 = '  \t  abc  \t  123  \n  '

In [58]: import re

In [59]: re.sub('[ \t\n]+', '', s4)
Out[59]: 'abc123'

In [60]:

 

posted on   zhang_derek  阅读(1411)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
历史上的今天:
2018-08-16 微信小程序实战--集阅读与电影于一体的小程序项目(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

目录导航