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 相关文章推荐
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
Python使用剪切板的方法
Jun 06 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
python matplotlib库的基本使用
Sep 23 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
5道关于python基础 while循环练习题
Nov 27 Python
python中对列表的删除和添加方法详解
Feb 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文件读写操作之文件写入代码
2011/01/13 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP 中常量的知识整理
2017/04/14 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
ES6的异步终极解决方案分享
2019/07/11 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
python搭建虚拟环境的步骤详解
2016/09/27 Python
python实现二叉查找树实例代码
2018/02/08 Python
python微信公众号开发简单流程
2018/03/23 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
Python3爬楼梯算法示例
2019/03/04 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
python FTP编程基础入门
2021/02/27 Python
荷兰电脑专场:Paradigit
2018/05/05 全球购物
喝酒检查书范文
2014/02/23 职场文书
辩论赛主持词
2014/03/18 职场文书
求职自我评价范文
2015/03/09 职场文书
人工作失职检讨书
2015/05/05 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis