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

相关文章

来自专栏韦弦的微信小程序

Swift 有效的数独 - LeetCode

判断一个数独是否有效,根据:Sudoku Puzzles - The Rules。 (数独规则: 每一行不能有重复的数字;每一列不能有重复的数字;将数独框划分...

783
来自专栏从零开始学 Web 前端

嵌入式面试题(一)

4. 空指针(null pointer)指向了内存的什么地方(空指针的内部实现)?

702
来自专栏程序员互动联盟

C语言最难啃的三块硬骨头

提到C语言很多初学者都觉得,学到中间就进行不下去了,因为碰到了几个硬骨头死活翻不过去,于是很多人给C语言下结论太难了,太靠近底层了,特别是那几块难啃的骨头,直接...

3405
来自专栏Java架构师进阶

编写高质量代码的思考

最近在看《代码大全》,可以说是一本软件开发的百科全书,特别厚,但是干货也很多。平时写代码,代码规范是一个最低的要求(很多老代码连最低要求都达不到),为什么要这样...

852
来自专栏iKcamp

翻译连载 | 第 10 章:异步的函数式(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 第 10 章:异步的函数式(上)...

1929
来自专栏PHP技术

5个经典的JavaScript面试题

在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开 发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司...

3218
来自专栏章鱼的慢慢技术路

层层递进——宽度优先搜索(BFS)

1834
来自专栏程序人生

来来来,咱们元编程入个门

前一篇文章竟然被很多人批「干货太少」 —— 一看你们就没有看过 Rich 他老人家的 Hammock Driven Development(我很久前推荐过滴),...

31810
来自专栏云飞学编程

关于一道面试题的极其无聊的python算法实现

就找3个条件,就可以得出我们想要的结果,实话说,开始我也是很懵逼,后来仔细想了想,还是有可能的,我们可以这样来做

992
来自专栏iKcamp

翻译连载 | 附录 A:Transducing(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 JavaScript 轻量级函数...

1878

扫码关注云+社区