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 开发Activex组件方法
Nov 08 Python
Python模块学习 re 正则表达式
May 19 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
pytorch数据预处理错误的解决
Feb 20 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
tensorflow常用函数API介绍
Apr 19 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 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
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP使用递归生成文章树
2015/04/21 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
python查询sqlite数据表的方法
2015/05/08 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
利用python计算时间差(返回天数)
2019/09/07 Python
python实现高斯投影正反算方式
2020/01/17 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
应聘美工求职信
2013/11/07 职场文书
大学生校园创业计划书
2014/02/08 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
SpringBoot详解执行过程
2022/07/15 Java/Android
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技