• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python实现读取字符串按列分配后按行输出示例

python 搞代码 4年前 (2022-01-07) 19次浏览 已收录 0个评论

这篇文章主要介绍了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是作为空白填充进去的,下面看具体的实现:

 #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:zigzag_pattern T  W  Q  K N D X Z S V B G  A  C convert("TNGDWXAZQSCV<b style="color:transparent">来源gao@!dai!ma.com搞$$代^@码!网</b>BK", 3) should return "TWQBNDXZSVKGAC". ''' 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 #print 'rows, cols', rows, cols 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) #print matrix # for one in matrix: #   one_list=[str(onec) for onec in one] #   print ' '.join(one_list) 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字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

以上就是Python实现读取字符串按列分配后按行输出示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python实现读取字符串按列分配后按行输出示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址