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


Posted in Python onApril 17, 2018

本文实例讲述了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("TNGDWXAZQSCVBK", 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 相关文章推荐
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
python实现定时播放mp3
Mar 29 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
Python中logging实例讲解
Jan 17 Python
Django 拆分model和view的实现方法
Aug 16 Python
对python中UDP,socket的使用详解
Aug 22 Python
基于python实现坦克大战游戏
Oct 27 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 #Python
Numpy掩码式数组详解
Apr 17 #Python
对numpy中布尔型数组的处理方法详解
Apr 17 #Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 #Python
python3库numpy数组属性的查看方法
Apr 17 #Python
对python中的for循环和range内置函数详解
Apr 17 #Python
Numpy数组转置的两种实现方法
Apr 17 #Python
You might like
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
PHP 实现判断用户是否手机访问
2015/01/21 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
Python中操作MySQL入门实例
2015/02/08 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
求职信格式范文
2015/03/19 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android