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 subprocess模块学习总结
Mar 13 Python
python进阶教程之动态类型详解
Aug 30 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
Python的time模块中的常用方法整理
Jun 18 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
pandas多级分组实现排序的方法
Apr 20 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
python制作填词游戏步骤详解
May 05 Python
python创建n行m列数组示例
Dec 02 Python
如何在mac版pycharm选择python版本
Jul 21 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
用Python 执行cmd命令
Dec 18 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数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
javascript 类型判断代码分析
2010/03/28 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
python中subprocess批量执行linux命令
2018/04/27 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
Pycharm修改python路径过程图解
2020/05/22 Python
python的pip有什么用
2020/06/17 Python
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
差生评语大全
2014/05/04 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
考试作弊检讨
2015/01/27 职场文书
环保宣传语大全
2015/07/13 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL