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实现同时给多个变量赋值的方法
Apr 30 Python
Python生成不重复随机值的方法
May 11 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python生成带有表格的图片实例
Feb 03 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Python考拉兹猜想输出序列代码实践
Jul 05 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 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实现telnet功能示例
2014/04/08 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
js 居中漂浮广告
2010/03/21 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
js中有关IE版本检测
2012/01/04 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Python如何生成xml文件
2020/06/04 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
Python实现区域填充的示例代码
2021/02/03 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
美国最大点评网站:Yelp
2018/02/14 全球购物
火山动力Java笔试题
2014/06/26 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫