为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要,简而言之就是把软件代码分文件目录,做到可读性强,可维护性高
1、collections模块
导入模块:
from collections import namedtuply
用法一:表示二位坐标
point = namedtuple('坐标', ['x', 'y'])
p1 = point(1, 2)
print(p1)
print(p1.x)
print(p1.y)
-------------------------------------------------------------------------------------
坐标(x=1, y=2)
1
2
用法二:表示扑克牌
card = namedtuple('扑克牌', ['num', 'color'])
c1 = card('A', '黑♠')
c2 = card('A', '红♥')
print(c1, c1.num, c1.color)
print(c2, c2.num, c2.color)
-----------------------------------------------------------------------------
扑克牌(num='A', color='黑♠') A 黑♠
扑克牌(num='A', color='红♥') A 红♥
导入模块:
from eollections import deque
用法:
q = deque(['a', 'b', 'c'], maxlen=10)
# 从右边添加一个元素
q.append('d')
print(q) # deque(['a', 'b', 'c', 'd'], maxlen=10)
# 从左边删除一个元素
print(q.popleft()) # a
print(q) # deque(['b', 'c', 'd'], maxlen=10)
# 扩展队列
q.extend(['i', 'j'])
print(q) # deque(['b', 'c', 'd', 'i', 'j'], maxlen=10)
# 查找下标
print(q.index('c')) # 1
# 移除第一个'd'
q.remove('d')
print(q) # deque(['b', 'c', 'i', 'j'], maxlen=10)
# 逆序
q.reverse()
print(q) # deque(['j', 'i', 'c', 'b'], maxlen=10)
# 最大长度
print(q.maxlen) # 10
导入模块:
from eollections import defauldict
用法一:
# 使用 list 作为 default_factory ,很容易将序列作为键值对加入字典:
d = defaultdict(list)
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
for k, v in s:
d[k].append(v)
print(d) # defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})
用法二:
# 设置 default_factory 为 int ,可以很好的用于计数
s = 'mississippi'
d = defaultdict(int)
for k in s:
d[k] += 1
print(d) # defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})
导入模块:
from eollections import counter
用法一:统计字符串字符个数
c = Counter()
str_1 = 'sfsadfsdjklgsdla'
for i in str_1:
c[i] += 1
print(c) # Counter({'s': 4, 'd': 3, 'f': 2, 'a': 2, 'l': 2, 'j': 1, 'k': 1, 'g': 1})
c2 = Counter('asfjslfjsdlfjgkls')
print(c2) # Counter({'s': 4, 'd': 3, 'f': 2, 'a': 2, 'l': 2, 'j': 1, 'k': 1, 'g': 1})
用法二:统计列表相同数据值个数
c = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(c) # Counter({'blue': 3, 'red': 2, 'green': 1})
2、time时间模块
在python中,有三种表现时间的结构
1、时间戳:1970年0时0分0秒-到现在的秒速
2、结构化时间:计算机看的,人看不适应
3、格式化时间:主要是表示时间的年月日
模块导入:
import time/from time import time
print(time.time()) # 1666170099.7668478
模块导入:
import time/from time import localtime
print(time.localtime()) # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=17, tm_min=4, tm_sec=16, tm_wday=2, tm_yday=292, tm_isdst=0)
模块导入:
import time/from time import strftime
print(time.strftime('%y/%m/%d')) # 22/10/19
print(time.strftime('%y-%m-%d,%H:%M:%S')) # 22-10-19,17:19:17
print(time.strftime('%y年%m月%d日%H时%M分%S秒')) # 22年10月19日17时19分17秒
模块导入:
import time/from time import sleep
time.sleep(10)
print('怎么还没到我~') # 代码将在10秒后打印
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。