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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
进一步探究Python中的正则表达式
Apr 28 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
基于python中theano库的线性回归
Aug 31 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
python3.7 sys模块的具体使用
Jul 22 Python
python实现图片压缩代码实例
Aug 12 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
Python安装并操作redis实现流程详解
Oct 13 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 Python
Python+Appium实现自动抢微信红包
May 21 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python列表(list)常用操作方法小结
2015/02/02 Python
使用PDB模式调试Python程序介绍
2015/04/05 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
python实现各进制转换的总结大全
2017/06/18 Python
Python中django学习心得
2017/12/06 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
加强作风建设工作总结
2014/10/23 职场文书
英文投诉信格式
2015/07/03 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL