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  连接字符串(join %)
Sep 06 Python
python实现简单温度转换的方法
Mar 13 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
python 输出上个月的月末日期实例
Apr 11 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
简单了解python的内存管理机制
Jul 08 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
基于python实现语音录入识别代码实例
Jan 17 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
js实现无缝滚动图
2017/02/22 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
详解python读取image
2019/04/03 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
车间班组长岗位职责
2013/11/13 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
销售2014年度工作总结
2014/12/08 职场文书
捐资助学感谢信
2015/01/21 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
会计入职心得体会
2016/01/22 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android