零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

9个,程序员又爱又恨的编程习惯

编程习惯No. 1:使用goto 关于禁止使用goto可以追溯到许多结构化编程工具还未面世的时代。如果程序员想要创建一个循环或跳到另一段程序中,那么他们需要输入...

2947
来自专栏java一日一条

程序员偷偷深爱的 9 个不良编程习惯

我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙。同样的,我们都违背过一些编程的基本规则,并且都会坚定地表示这种行为是不可取的。...

311
来自专栏Java学习网

程序员偷偷深爱的 9 个不良编程习惯

程序员偷偷深爱的 9 个不良编程习惯 我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙。同样的,我们都违背过一些编程的基本规则,...

24410
来自专栏数据小魔方

高级筛选到底有多“高级”!

今天跟大家分享excel筛选功能中隐藏的高级筛选功能! excel中的筛选窗口中,一直隐藏着一个不起眼的小菜单——高级:(如下图) ? 按照微软软件一贯风格,藏...

3085
来自专栏C语言C++游戏编程

无形细节最为致命,C语言中与零值比较那些小事儿

无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“。小编给大家推荐一个...

1243
来自专栏take time, save time

[细节决定B度]之二分搜索也不易啊

     实事求是的说二分搜索是我学习算法的时候学的最好,理解的最透彻,能够当时就写出代码的的算法。事到如今,就如我可以分分钟写出hello world一样,我...

2626
来自专栏数据结构与算法

2057. [ZLXOI2015]殉国

输入文件:BlackHawk.in   输出文件:BlackHawk.out 评测插件 时间限制:0.05 s   内存限制:256 MB 【题目描述】 ...

3218
来自专栏数据结构与算法

BZOJ1228: [SDOI2009]E&D(打表SG)

Description 小E 与小W 进行一项名为“E&D”游戏。游戏的规则如下:桌子上有2n 堆石子,编号为1..2n。其中,为了方便起见,我们将第2k-1...

2695
来自专栏AzMark

Python函数的介绍

1136
来自专栏小文博客

害死人不偿命的(3n+1)猜想 —— 《C语言代码笔记》

922

扫描关注云+社区