本文摘自php中文网,作者不言,侵删。
这篇文章主要介绍了Python实现读取字符串按列分配后按行输出,涉及Python针对字符串的遍历、判断、运算等相关操作技巧,有需要的朋友可以参考下本文实例讲述了Python实现读取字符串按列分配后按行输出。分享给大家供大家参考,具体如下:
问题:
输入一个字符串和一个数字,数字代表分为几行,需要按照给定的列存储方法存储下来之后按行拼接读出,如:
输入:TNGDWXAZQSCVBK,3
输出:TWQBNDXZSVKGAC
中间转化的时候会形成这样的图形:
T W Q K
N D X Z S V B
G A C
化为矩阵可能看得更清晰一点:
T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0
0是作为空白填充进去的,下面看具体的实现:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 | def convert_test(one_str,num):
mod = len (one_str) % (num + 1 )
if mod = = 0 :
cols = ( len (one_str) / (num + 1 )) * 2
else :
cols = ( len (one_str) / (num + 1 )) * 2 + 1
rows = num
matrix = []
for i in range (rows):
matrix.append([ 0 ] * cols)
one_str_list = list (one_str)
for j in range (cols):
if j % 2 = = 0 :
for i in range (rows):
if len (one_str_list):
matrix[i][j] = one_str_list.pop( 0 )
else :
matrix[ 1 ][j] = one_str_list.pop( 0 )
res = ''
for one_list in matrix:
one_list = [ str (one) for one in one_list]
res + = ''.join(one_list)
return ' '.join(res.split(' 0 '))
if __name__ = = '__main__' :
print convert_test( "TNGDWXAZQSCVBK" , 3 )
print convert_test( "PAYPALISHIRING" , 2 )
print convert_test( "PAYPALISHIRING" , 4 )
|
结果如下:
TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Finished in 0.3s]
相关推荐:
Python实现求解括号匹配问题的方法
用Python实现web端用户登录和注册功能
以上就是Python实现读取字符串按列分配后按行输出的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python写错了怎么删除
Python开发tornado网站之异步与协程化的介绍
Python有关时间处理的详细介绍
在Python中如何获取字符串的长度
Python tkinter教程 数字猜谜游戏
Python中pow什么意思
Python中如何在一个函数中加入多个装饰器
如何获取Python中的对象属性?(实例讲解)
Python怎么求余数
ipad 能做Python开发吗
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python实现读取字符串按列分配后按行输出