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中使用摄像头实现简单的延时摄影技术
Mar 27 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
简单谈谈Python的pycurl模块
Apr 07 Python
django中forms组件的使用与注意
Jul 08 Python
python 安装impala包步骤
Mar 28 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
django haystack实现全文检索的示例代码
Jun 24 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
python如何实现递归转非递归
Feb 25 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php设置编码格式的方法
2013/03/05 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
webpack之devtool详解
2018/02/10 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
Python中的getopt函数使用详解
2015/07/28 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
基于python历史天气采集的分析
2019/02/14 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python中open函数的基本用法示例
2019/09/07 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
CSS3 文字动画效果
2020/11/12 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android
delete in子查询不走索引问题分析
2022/07/07 MySQL