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实现3行代码解简单的一元一次方程
Aug 18 Python
Django验证码的生成与使用示例
May 20 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
python简单实现AES加密和解密
Mar 28 Python
python 实现在tkinter中动态显示label图片的方法
Jun 13 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
Python使用UDP实现720p视频传输的操作
Apr 24 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递归复制、移动目录的自定义函数分享
2014/11/18 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
js实现点赞效果
2020/03/16 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
python之yield表达式学习
2014/09/02 Python
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
python多维数组分位数的求取方式
2020/03/03 Python
解决django FileFIELD的编码问题
2020/03/30 Python
scrapy-splash简单使用详解
2021/02/21 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
机械专业毕业生推荐信范文
2013/11/25 职场文书
管理站站长岗位职责
2013/11/27 职场文书
幼儿园感谢信
2015/01/21 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
React 高阶组件HOC用法归纳
2021/06/13 Javascript
日元符号 ¥
2022/02/17 杂记