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中lambda与def用法对比实例分析
Apr 30 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
浅谈python中get pass用法
Mar 19 Python
深入了解Python iter() 方法的用法
Jul 11 Python
Python银行系统实战源码
Oct 25 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
python深copy和浅copy区别对比解析
Dec 26 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python使用configparser库读取配置文件
Feb 22 Python
Python select及selectors模块概念用法详解
Jun 22 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数组无限分级数据的层级化处理代码
2012/12/29 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
js字符编码函数区别分析
2008/06/05 Javascript
javascript dom 操作详解 js加强
2009/07/13 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
js中有关IE版本检测
2012/01/04 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
JQuery用户名校验的具体实现
2016/03/18 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
python基于递归解决背包问题详解
2019/07/03 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
高中美术教学反思
2014/01/19 职场文书
活动策划邀请函
2014/02/06 职场文书
大学生英语演讲稿
2014/04/24 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
禁止酒驾标语
2014/06/25 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
解决Golang中goroutine执行速度的问题
2021/05/02 Golang