[题目] 把一段字符串用"右起竖排"的古文格式输出

从两道趣味题目看PYTHON的简洁性 这篇博文看到的题目, 没按博主的方法, 自己写了两种.

把一段字符串用"右起竖排"的古文格式输出

直接将字符串装入二元列表:

def rotate_1(string, offset=6):
    len_str = len(string)
    cols = int((len_str+offset-1) / offset)
    A = [['']*cols for row in range(offset)]
    for col in range(cols):
        for row in range(offset):
            index = (cols-1-col)*offset+row
            A[row][col] = string[index] if index < len_str else '  '
    return A

先顺序装入, 再将二元列表顺时针旋转90度:

def rotate_2(string, offset=6):
    len_str = len(string)
    rows = int((len_str+offset-1) / offset)
    A = [['']*offset for row in range(rows)]
    for col in range(offset):
        for row in range(rows):
            index = row*offset+col
            A[row][col] = string[index] if index < len_str else '  '
    return list(map(lambda x: x[::-1], zip(*A)))

调用:

A = rotate_1('静夜思 李白床前明月光,疑似地上霜。举头望明月,低头思故乡。')
print('\n'.join(['┊'.join(row) for row in A]))
print('='*20)
A = rotate_2('静夜思 李白床前明月光,疑似地上霜。举头望明月,低头思故乡。')
print('\n'.join(['┊'.join(row) for row in A]))

输出:

低┊举┊疑┊床┊静
头┊头┊似┊前┊夜
思┊望┊地┊明┊思
故┊明┊上┊月┊
乡┊月┊霜┊光┊李
。┊,┊。┊,┊白
====================
低┊举┊疑┊床┊静
头┊头┊似┊前┊夜
思┊望┊地┊明┊思
故┊明┊上┊月┊
乡┊月┊霜┊光┊李
。┊,┊。┊,┊白

[整理] Python程序员的进化史

测试GIST Evolution of a Python programmer.py 中的代码, 该代码片段为各种程序员所写的阶乘算法代码, 甚至包括网页设计师的, 很有意思


[基础] 在Python中获得字典列表中最大值与最小值

假设有字典列表:dict_list = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}, {'price': 77, 'barcode': '2342377'}], 要求price的最大值与最小值


[解决] Python lxml wrapping elements

有的网页中正文没有使用<div>进行包装, 结果提取正文时只提取了某一段, 而不是作为整体的正文, 一开始直接将<body>元素变成<div>, 发现会有其它副作用, 因为其它代码中有通过标签是否是body作为判断的代码. 因此考虑默认为<body>的子元素加一层<div>包装.


[解决] 使用lxml过滤HTML中class或id符合特定正则的元素

使用lxml过滤HTML中class或id符合特定正则的元素


[基础] 给Python初学者的一些技巧

给Python初学者的一些技巧


[待学习] matplotlib相关

matplotlib相关


[常用] 在Python中检测网页编码

在Python中检测网页编码, 包括使用Chardet和BeautifulSoup4的UnicodeDammit


[学习中] 使用lxml解析HTML

使用lxml解析HTML


[安装配置] Python相关

Python安装相关, 主要是一些书签与步骤记录.