python3 标准库一些总结

1,统计个数(字符串,列表等)或者初始化字典,输出一个包含键和计数的字典或提供一个元素序列,还可以使用关键字参数讲字符串名映射到计数。

模块:collections

构造函数: Counter

import collections
text1 = "asbgewgrg2121aaassbsbgeeeegwwrr"
c = collections.Counter(text1)
print(c)
print(collections.Counter({‘a‘:3,‘b‘:2}))
print(collections.Counter(a=6, b=5))
##########输出如下#######
Counter({‘g‘: 5, ‘e‘: 5, ‘a‘: 4, ‘s‘: 4, ‘b‘: 3, ‘w‘: 3, ‘r‘: 3, ‘2‘: 2, ‘1‘: 2})
Counter({‘a‘: 3, ‘b‘: 2})
Counter({‘a‘: 6, ‘b‘: 5})

2,多行合并

sample_text = """
Ridiculously fast.
Django was designed to help developers take applications from concept to completion as quickly as possible.

Reassuringly secure.
Django takes security seriously and helps developers avoid many common security mistakes.

Exceedingly scalable.
Some of the busiest sites on the Web leverage Django’s ability to quickly and flexibly scale.
"""

import textwrap
print(textwrap.fill(sample_text,width=50))
#
dedented_text = textwrap.dedent(sample_text)
print(‘Dedented:‘)
print(dedented_text)
#
dedented2_text = textwrap.dedent(sample_text).strip()
for width in [45, 60]:
    print(‘{} Columns:\n‘.format(width))
    print(textwrap.fill(dedented2_text, width=width))
    print()
#
dedented3_text = textwrap.dedent(sample_text)
wrapped = textwrap.fill(dedented3_text,width=50)
wrapped += ‘\n\nSecond garagraph after a blank line.‘
final = textwrap.indent(wrapped,‘>‘)
print(‘Quoted block:\n‘)
print(final)

3,re

import re

pattern = "this"
text = "Does this text match the pattern?"

match = re.search(pattern, text)
print(type(match))
s = match.start()
e = match.end()

print(‘Found "{}"\nin "{}"\nfrom {} to {} ("{}")‘.format(match.re.pattern, match.string, s, e, text[s:e]))
#
print("#" * 20+str(2) + "#" * 20)
#2
import re
regexes = [
    re.compile(p) for p in [‘this‘, ‘that‘]
]
text = ‘Does this text match the pattern?‘
print(‘text: {!r}\n‘.format(text))

for regex in regexes:
    print(‘Seeking "{}" ->‘.format(regex.pattern), end=‘ ‘)
    if regex.search(text):
        print(‘match!‘)
    else:
        print("no match")

print("#" * 20+str(3) + "#" * 20)
#3
import re
text = ‘abbaaabbbbaaaaa‘
pattern = ‘ab‘
for match in re.findall(pattern,text):
    print(‘Found {!r}‘.format(match))
print("#" * 20+str(3.2) + "#" * 20)
for match in re.finditer(pattern,text):
    s = match.start()
    e = match.end()
    print(‘Found {!r} at {:d}:{:d}‘.format(text[s:e], s, e))
print("#" * 20 + str(4) + "#" * 20)
################输出#####################
<class ‘re.Match‘>
Found "this"
in "Does this text match the pattern?"
from 5 to 9 ("this")
####################2####################
text: ‘Does this text match the pattern?‘

Seeking "this" -> match!
Seeking "that" -> no match
####################3####################
Found ‘ab‘
Found ‘ab‘
####################3.2####################
Found ‘ab‘ at 0:2
Found ‘ab‘ at 5:7

4,查找单个字符串在某个序列中的计数,但不支持单个单词在string中查找,可以在列表或元祖中查找计数;

模块:collections

构造函数: Counter

import collections
#1
d = collections.Counter("abcdaafbbdd")
for letter in ‘abcde‘:
    print(‘{} : {}‘.format(letter, d[letter]))

#2
m = collections.Counter(["this","a","b"]) #()元组 ,序列
for letter in {‘this‘}: # [] 列表
    print(‘{} : {}‘.format(letter, m[letter]))
#3 不支持字符串单词
text2 = "hello ,this is a tree ,this ,that..."
m2 = collections.Counter(text2)
for letter in {‘this‘}:
    print(‘{} : {}‘.format(letter, m2[letter]))

###################输出#################
a : 3
b : 3
c : 1
d : 3
e : 0
this : 1
this : 0

原文地址:https://www.cnblogs.com/weizitianming/p/11328221.html

时间: 2024-10-30 04:46:41

python3 标准库一些总结的相关文章

Python3标准库

文本 1. string:通用字符串操作 2. re:正则表达式操作 3. difflib:差异计算工具 4. textwrap:文本填充 5. unicodedata:Unicode字符数据库 6. stringprep:互联网字符串准备工具 7. readline:GNU按行读取接口 8. rlcompleter:GNU按行读取的实现函数 二进制数据 9. struct:将字节解析为打包的二进制数据 10. codecs:注册表与基类的编解码器 数据类型 11. datetime:基于日期与

4.Python3标准库--算法

(一)functools:管理函数的工具 import functools ''' functools模块提供了一些工具来管理或扩展和其他callable对象,从而不必完全重写 ''' 1.修饰符 from functools import partial ''' functools模块提供的主要工具就是partial类,可以用来包装一个有默认参数的callable对象. 得到的对象本身就是callable,可以把它看作是原来的参数. ''' # 举个栗子 def foo(name, age,

Python3标准库:weakref对象的非永久引用

1. weakref对象的非永久引用 weakref模块支持对象的弱引用.正常的引用会增加对象的引用数,并避免它被垃圾回收.但结果并不总是如期望中的那样,比如有时可能会出现一个循环引用,或者有时需要内存时可能要删除对象的缓存.弱引用(weak reference)是一个不能避免对象被自动清理的对象句柄. 1.1 引用 对象的弱引用要通过ref类来管理.要获取原对象,可以调用引用对象. import weakref class ExpensiveObject: def __del__(self):

Python3标准库:hashlib密码散列

1. hashlib密码散列 hashlib模块定义了一个API来访问不同的密码散列算法.要使用一个特定的散列算法,可以用适当的构造器函数或new()来创建一个散列对象.不论使用哪个具体的算法,这些对象都使用相同的API. 1.1 散列算法 由于hashlib有OpenSSL提供“底层支持”,所以OpenSSL库提供的所有算法都可用,包括: md5 sha1 sha224 sha256 sha384 sha512 有些算法在所有平台上都可用,而有些则依赖于底层库.这两种算法分别由algorith

Python3标准库:urllib.parse分解URL

1. urllib.parse分解URL urllib.parse模块提供了一些函数,可以管理URL及其组成部分,这包括将URL分解为组成部分以及由组成部分构成URL. 1.1 解析 urlparse()函数的返回值是一个ParseResult对象,其相当于一个包含6个元素的tuple. from urllib.parse import urlparse url = 'http://netloc/path;param?query=arg#frag' parsed = urlparse(url)

2.Python3标准库--文本

(一)string:文本常量和模板 1.函数 import string ''' string模块在最早的Python版本中就已经有了.以前这个模块中提供的很多函数已经移植到str对象中,不过这个模块仍然保留了很多有用的常量和类来处理str对象 ''' # 函数capwords会把一个字符串中的所有单词的首字母变成大写 s = "when i was young, i'd listen to the radio" print(s) # when i was young, i'd lis

Python3标准库:array数组

1. array数组 array模块定义了一个序列数据结构,看起来与list很相似,只不过所有成员都必须是相同的基本类型.支持的类型包括所有数值类型或其他固定大小的基本类型(如字节). 代码 类型 最小大小(字节) b int 1 B int 1 h signed short 2 H unsigned short 2 i signed int 2 I unsigned int 2 l signed long 4 L unsigned long 4 q signed long long 8 Q u

Python3标准库:bisect维护有序列表

1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序. 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素. import bisect # A series of random numbers values = [14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 77, 1] print('New Pos Contents') print('--- --- ----

Python3标准库:copy复制对象

1. copy复制对象 copy模块包括两个函数copy()和deepcopy(),用于复制现有的对象. 1.1 浅副本 copy()创建的浅副本(shallow copy)是一个新容器,其中填充了原对象内容的引用.建立list对象的一个浅副本时,会构造一个新的list,并将原对象的元素追加到这个list. import copy import functools @functools.total_ordering class MyClass: def __init__(self, name):