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安装Scrapy图文教程
Aug 14 Python
Python编程实现正则删除命令功能
Aug 30 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
python 切换root 执行命令的方法
Jan 19 Python
详解python tkinter教程-事件绑定
Mar 28 Python
Python通用函数实现数组计算的方法
Jun 13 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
对Django 转发和重定向的实例详解
Aug 06 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Python 日期与时间转换的方法
Aug 01 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模板技术原理【一】
2008/01/10 PHP
一个PHP分页类的代码
2011/05/18 PHP
php以post形式发送xml的方法
2014/11/04 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python实现的建造者模式示例
2018/08/06 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
基于opencv实现简单画板功能
2020/08/02 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
门卫岗位安全职责
2013/12/13 职场文书
晚会邀请函范文
2014/01/24 职场文书
聚美优品励志广告词
2014/03/14 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
跑操口号
2014/06/12 职场文书
个人总结格式范文
2015/03/09 职场文书
交流会主持词
2015/07/02 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS