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实现过滤单个Android程序日志脚本分享
Jan 16 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
使用Python生成XML的方法实例
Mar 21 Python
Python机器学习之K-Means聚类实现详解
Feb 22 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Django保护敏感信息的方法示例
May 09 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
浅谈matplotlib默认字体设置探索
Feb 03 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高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
js实现打字小游戏
2019/12/17 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
python time模块用法实例详解
2014/09/11 Python
深入理解python中的select模块
2017/04/23 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
python字典排序的方法
2019/10/12 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
新闻专业个人求职信
2013/12/19 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
外出学习心得体会范文
2016/01/18 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
JavaScript中reduce()的用法
2022/05/11 Javascript