零基础学编程033:字符串的split拆分与join连接

在《零基础学编程021:获取股票实时行情数据》这一节里,我们学了split()函数,可以将一个字符串切开。假设有一个历史行情字符串,信息包括:股票名称、开盘价、最高价、最低价、收盘价、交易量等,用split() 之后可以方便地取出任何一个价格,例如:v[1]就是开盘价。

hq = "谷歌,843.64,847.24,840.8,845.62,779900"
v = hq.split(',')
print(v)

# 输出结果:['谷歌', '843.64', '847.24', '840.8', '845.62', '779900']

可以看到print(v)的输出内容是一个列表list,python将其输出时,会在前后加上中括号[ ],里面的每一项内容仍是字符串,显示出来不直观。如果你想把这些字符串再重新拼起来,以前有编程基础的朋友马上会这样做:

v = ['谷歌', '843.64', '847.24', '840.8', '845.62', '779900']
hq = ""
for i in v :
    hq += str(i) + ","
hq = hq[:-1]  #去掉尾部多余的一个逗号
print(hq)

但实际上应该用 join() 函数,简洁、直观、性能好:

v = ['谷歌', '843.64', '847.24', '840.8', '845.62', '779900']
hq = ','.join(v)
print(hq)

这个join()函数与split()函数的功能几乎正好相反,但初学者在理解','.join()这条语句时感觉会很不习惯,似乎v.join(',')更符合思维习惯。关于这个问题,感兴趣的朋友可以读下面这篇帖子,里面介绍了这种设计的主要考虑和经过:http://stackoverflow.com/questions/493819/python-join-why-is-it-string-joinlist-instead-of-list-joinstring

最近正在零基础学画画,尝试着把这两个函数的意思画了下来。

s = 'ab,cd,ef,gh'
t = s.split(',')
s = ','.join(t)

这里需要注意的是:s是一个字符串,而t是4个字符串。

还需要特别注意这样一种用法:

','.join('abcde')

join()函数里的参数是一个列表list(准确地说,应该是一个可遍历的对象,这里先不介绍它),python的字符串也是可遍历的,可以拆为一个个的单个字符,所以结果就是:

'a,b,c,d,e'

我把以前的365行复利数据表再利用join函数写一遍,你还能看懂吗?

def fuli(i) :
    y = round(1.01**i, 2)
    return "(1+0.01) ^ " + str(i) + " = " + str(y)
    
fuli365 = [fuli(i) for i in range(1,366)]
print('\n'.join(fuli365))

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java函数式开发——优雅的Optional空指针处理

空闲时会抽空学习同在jvm上运行的Groovy和Scala,发现他们对null的处理比早期版本Java慎重很多。在Java8中,Optional为函数式编程的n...

1221
来自专栏斑斓

代码诊所的第二次诊断

几年前,我有机会负责一个项目的咨询。团队很小,目标是对旧有系统的后端用Java改写,而团队的开发人员全为C程序员。我的工作职责是负责项目设计、开发,以及担任项目...

3505
来自专栏晨星先生的自留地

一道小CTF

2094
来自专栏CDA数据分析师

飞跃式发展的后现代 Python 世界

如果现代Python有一个标志性特性,那么简单说来便是Python对自身定义的越来越模糊。在过去的几年的许多项目都极大拓展了Python,并重建了“Python...

2066
来自专栏nimomeng的自我进阶

探索命名之美(二)

大家在编码或者读代码的过程中,对于什么样的命名是好的命名可能认知不是特别清晰,但是对于什么样的命名是坏的命名应该一目了然,他们包括:

742
来自专栏AzMark

Python字符串、循环及练习

1534
来自专栏小文博客

蓝桥杯 C语言省赛 习题1 奖券数目

1512
来自专栏姬小光

正则表达式是个啥

前些天有运营 MM 问小鸡君,正则表达式是个啥啊?懂技术的同学可能会想,你个运营管啥是正则表达式干啥?

582
来自专栏take time, save time

你所能用到的数据结构(六)

八、数据结构不一定很枯燥   正如我现在实习的公司的一个同事说的那样,数据结构是一本催眠的书,我想对于大多数人应该是这样的,当然对我也是,看着一大堆的算法,结...

3265
来自专栏何俊林

Android Multimedia框架总结(十)Stagefright框架之音视频输出过程

前言:上篇文中最后介绍了数据解码放到Buffer过程,今天分析的是stagefright框架中音视频输出过程: 先看下今天的Agenda: 一张图回顾数据处理...

2208

扫码关注云+社区