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利用hook技术破解https的实例代码
Mar 25 Python
从零学python系列之从文件读取和保存数据
May 23 Python
Python解析xml中dom元素的方法
Mar 12 Python
Python使用sorted排序的方法小结
Jul 28 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
Python实现的读取电脑硬件信息功能示例
May 30 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
如何用python实现一个HTTP连接池
Jan 14 Python
十个Python自动化常用操作,即拿即用
May 10 Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
深入解析php中的foreach函数
2013/08/31 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
canvas绘制七巧板
2017/02/03 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
浅述python2与python3的简单区别
2018/09/19 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
JAVA中运算符的分类及举例
2015/09/12 面试题
学生会离职感言
2014/02/11 职场文书
表决心的诗句大全
2014/03/11 职场文书
电子专业求职信
2014/06/19 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书