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使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
Python多继承原理与用法示例
Aug 23 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
python数据归一化及三种方法详解
Aug 06 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 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中多维数组按指定value排序的实现代码
2014/08/19 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python文件名和文件路径操作实例
2017/09/29 Python
Python实现端口检测的方法
2018/07/24 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
Django 重写用户模型的实现
2019/07/29 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
设计部经理的岗位职责
2013/11/16 职场文书
精彩的广告词
2014/03/19 职场文书
社区春季防火方案
2014/06/02 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
会议欢迎词范文
2015/01/27 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis