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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
Python 功能和特点(新手必学)
Dec 30 Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
python距离测量的方法
Mar 06 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
python+pygame实现坦克大战
Sep 10 Python
python re.match()用法相关示例
Jan 27 Python
Python中seaborn库之countplot的数据可视化使用
Jun 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
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
php实现图片缩放功能类
2013/12/18 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python最基本的输入输出详解
2015/04/25 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
Python中is和==的区别详解
2018/11/15 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
Django 解决由save方法引发的错误
2020/05/21 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
军训感想500字
2014/02/20 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript