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函数可变参数定义及其参数传递方式实例详解
May 25 Python
python实现简单购物商城
May 21 Python
Python设计模式之中介模式简单示例
Jan 09 Python
python 以16进制打印输出的方法
Jul 09 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
Python装饰器模式定义与用法分析
Aug 06 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
详解python深浅拷贝区别
Jun 24 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
一行Python命令实现批量加水印
Apr 07 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自动更新新闻DIY
2006/10/09 PHP
PHP ajax 分页类代码
2008/11/13 PHP
PHP 一个页面执行时间类代码
2010/03/05 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
浅谈PHP的反射API
2017/02/26 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
Jquery实现Div上下移动示例
2014/04/23 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
JS实现密码框效果
2020/09/10 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
python实现画出e指数函数的图像
2019/11/21 Python
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
出国留学担保书
2014/05/20 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
校运动会广播稿300字
2014/10/07 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL