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 相关文章推荐
判断网页编码的方法python版
Aug 12 Python
Python实现的快速排序算法详解
Aug 01 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
linux中如何使用python3获取ip地址
Jul 15 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
python 5个顶级异步框架推荐
Sep 09 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
python复合条件下的字典排序
Dec 18 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
Django利用AJAX技术实现博文实时搜索
May 06 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
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
python实现桌面气泡提示功能
2019/07/29 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
老师给学生的表扬信
2014/01/17 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
期末学生评语大全
2014/04/24 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
计划生育责任书
2015/05/09 职场文书
家长意见书
2015/06/04 职场文书
cf战队宣传语
2015/07/13 职场文书
市场营销计划书
2019/04/24 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记