python join方法使用详解


Posted in Python onJuly 30, 2019

join方法

join这个方法,将可迭代的数据类型,转为字符串或者bytes,没错可以转为bytes类型。注意这个可迭代的数据中的元素必须是相同类型的。

jion里的参数可迭代对象就行,可迭代对象是指有__iter__方法的对象

# 列表为可迭代对象
list_1 = ["1","2","3","4"]  # 元素为字符串的列表
res = "".join(list_1)    # res的值为 "1234",数据类型为str

# 字典为可迭代对象
dict_1 = {"key1":"value2","key2":"value2"} # key为字符串类型的字段
res = "".join(dict_1)    # res的值为"key1key2",数据类型为str

# 自己写一个可迭代的对象
class A:
  __field = []

  def __init__(self, *args):
    for i in args:
      self.__field.append(i)

  def __iter__(self):
    changdu = len(self.__field)
    for i in range(self.__index, changdu):
      yield self.__field[i]

a = A("1","2","3","4")
res = "".join(a)     # res的值为"1234",数据类型为str

join为python的内置方法,具体源码是看不到的,我们大概也可以知道。对于上面代码中的变量list_1,dict_1,a都是可迭代对象。我们for循环它们,就可以拿到一个值,然后再将这个值进行相应的处理就ok

# 比如 "--".join(list_1)这个操作,它的输出为"1--2--3--4",一个字符串
list_1 = ["1","2","3","4"]
param = "--"
res = ""
for i in range(len(list_1)):
  if i == len(lis) - 1:
    res += lis[i]
  else:
    res += lis[i]
    res += param
print(res)  # 输出为 "1--2--3--4"

# 那么字典,还有对象a呢?
print(list(dict_1))  # 输出 ["key1","key2"]
print(list(a))    # 输出 ["1","2","3","4"]

我们实现join方法就是,将可迭代的对象先转为list类型,然后再执行上面那段代码(for循环那段)。这样大概能完成jion方法了

join方法最终返回值为str类型或者bytes类型,返回什么类型,要看是哪种类型的数据调用了join方法,比如上面的那些代码,全是由字符串调用,所以返回的也都是字符串类型。

"||".join(["a","b","c"])  # 输出 "a||b||c",类型为str
b"||".join([b"a", b"b", b"c"]) # 输出 b"a||b||c",类型为bytes类型

str类型数据调用了join方法,那么传入的可迭代对象,它的list(可迭代对象)里的元素也必须是str类型,如果为其他类型的话,程序就会报错。bytes类型调用也是一样,元素必须为bytes类型。

list_2 = ["1","2",3,4] # 列表中的元素由str类型,int类型
"".join(list_2)

执行上面的代码,程序会报错:TypeError: sequence item 2: expected str instance, int found

大概意思是接受字符串类型数据,发现了int类型数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
python去掉字符串中重复字符的方法
Feb 27 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
windows下python连接oracle数据库
Jun 07 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
python实现屏保程序(适用于背单词)
Jul 30 #Python
python实现各种插值法(数值分析)
Jul 30 #Python
Django 通过JS实现ajax过程详解
Jul 30 #Python
django 微信网页授权认证api的步骤详解
Jul 30 #Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 #Python
python tkinter实现屏保程序
Jul 30 #Python
python pandas 时间日期的处理实现
Jul 30 #Python
You might like
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
2011/12/11 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python计算两个地址之间的距离方法
2018/06/09 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
公司培训欢迎词
2014/01/10 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
服务员态度差检讨书
2014/10/28 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
党小组鉴定意见
2015/06/02 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
格林童话读书笔记
2015/06/30 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript