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 yield 小结和实例
Apr 25 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python实现程序的单一实例用法分析
Jun 03 Python
python开发之for循环操作实例详解
Nov 12 Python
Django自定义分页效果
Jun 27 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
Python 控制终端输出文字的实例
Jul 12 Python
Python time库基本使用方法分析
Dec 13 Python
Python3如何判断三角形的类型
Apr 12 Python
Python3.9.1中使用match方法详解
Feb 08 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依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
举例讲解Python中装饰器的用法
2015/04/27 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Keras 使用 Lambda层详解
2020/06/10 Python
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
土木工程师岗位职责
2013/11/24 职场文书
运动会广播稿60字
2014/01/15 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
借款民事起诉状范文
2015/05/19 职场文书
自考生自我评价
2019/06/21 职场文书