首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础学编程033:字符串的split拆分与join连接

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

作者头像
申龙斌
发布2018-03-06 10:55:54
7510
发布2018-03-06 10:55:54
举报

在《零基础学编程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 ---

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在《零基础学编程021:获取股票实时行情数据》这一节里,我们学了split()函数,可以将一个字符串切开。假设有一个历史行情字符串,信息包括:股票名称、开盘价、最高价、最低价、收盘价、交易量等,用split() 之后可以方便地取出任何一个价格,例如:v[1]就是开盘价。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档