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使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python实现把json格式转换成文本或sql文件
Jul 10 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
用python处理图片实现图像中的像素访问
May 04 Python
Python代码缩进和测试模块示例详解
May 07 Python
浅析python继承与多重继承
Sep 13 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
Python高级特性与几种函数的讲解
Mar 08 Python
python实现树的深度优先遍历与广度优先遍历详解
Oct 26 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
python打包生成so文件的实现
Oct 30 Python
python中的插入排序的简单用法
Jan 19 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
简单的PHP缓存设计实现代码
2011/09/30 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
python使用多进程的实例详解
2018/09/19 Python
Django models.py应用实现过程详解
2019/07/29 Python
PyTorch-GPU加速实例
2020/06/23 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
python绘制汉诺塔
2021/03/01 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
俄罗斯鲜花递送:AMF
2020/04/24 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
工作推荐信范文
2014/05/10 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
党支部季度考核意见
2015/06/02 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
Python基本知识点总结
2022/04/07 Python
MySQL事务的隔离级别详情
2022/07/15 MySQL
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技