Python中的join函数
Python中的join函数功能很强大,可以把字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串,而且分隔的字符也可以是一个字符串,接下来详尽地介绍这个函数。
1. 语法
1.1 string.join()
'sep'.join(seq)
代码解析:
sep: 代表分隔符, 可以是单个字符如: , . - ; 等,也可以是字符串如: 'abc'。
seq: 代表要连接的元素序列,可以是字符串、元组、列表、字典等。
注:'sep'和seq都只能是string型,不能是int型和float型。
错误实例1('sep'是int型):
错误实例2(seq中的元素是int型):
1.2 os.path.join()
os.path.join(Path1,Path2,Path3,...)
代码解析:
把path1、path2、path3...等用\连接起来,组成文件路径。
2. 具体实例
2.1 要连接的元素序列是字符串
实例1—(分隔符是单个字符)
sep = " " #分隔符(空格)
seq = '女神节日快乐' #要连接的字符串
str = sep.join(seq) #用分隔符连接字符串中的元素
得到结果:
'女 神 节 日 快 乐'
实例2—(分隔符是多个字符)
sep = " (*^__^*) " #分隔符(空格)
seq = '女神节日快乐' #要连接的字符串
str = sep.join(seq) #用分隔符连接字符串中的元素
得到结果:
'女 (*^__^*) 神 (*^__^*) 节 (*^__^*) 日 (*^__^*) 快 (*^__^*) 乐'
2.2 要连接的元素序列是列表
实例1—(分隔符是单个字符)
sep = "-" #分隔符(-)
seq = ['I','2','U'] #要连接的列表
str = sep.join(seq) #用分隔符连接列表中的元素
得到结果:
'I-2-U'
实例2—(分隔符是多个字符)
sep = '-女神-' #分隔符(多个字符)
seq = ['我','你','公认的',''] #要连接的列表
str = sep.join(seq)
得到结果:
'我-女神-你-女神-公认的-女神-'
注:元组的情况和列表是类似的,不赘述
2.3 要连接的元素序列是字典
实例1—(分隔符是单个字符)
sep = " " #分隔符(空格)
seq = {'W':1,'i':2,'n':3,'k':4, 'n':5} #要连接的字典
str = sep.join(seq) #用分隔符连接字典的元素
得到结果:
'W i n k'
注:字典只对键进行连接,如果键中有重复项,则只保留第一个键。
实例2—(分隔符是多个字符)
sep = " (^_-) " #分隔符(空格)
seq = {'W':1,'i':2,'n':3,'k':4, 'n':5} #要连接的字典
str = sep.join(seq) #用分隔符连接字典的元素
得到结果:
'W (^_-) i (^_-) n (^_-) k'
2.4 要连接的元素是路径
实例1:
path1 = 'D:\新建文件夹'
path2 = '微信公众号'
path3 = '16.快速入门python'
Path_Final = os.path.join(path1, path2, path3)
得到结果:
'D:\新建文件夹\微信公众号\16.快速入门python'
#可以用如下语句把当前路径改成Path_Final
os.chdir(Path_Final)
注:区别 + 号连接
path1+path2+path3
得到结果:
'D:新建文件夹微信公众号' #中间没有分隔符
实例2:看一个有意思的路径连接,思考一下为什么?
path1 = 'D:'
path2 = '新建文件夹:'
path3 = '微信公众号:'
path4 = '17.python中的join函数'
Path_Final = os.path.join(path1, path2, path3, path4)
得到结果:
'D:新建文件夹:\微信公众号:\17.python中的join函数'
os.path.join在path1后没有加连接符\,在path2后加了连接符,说明不是:导致的未加连接符,想一想为什么会不加连接符?
3. join函数在实际中的应用
3.1 用python代码实现分解素因数,并用join函数打印出来
num = int(input()) #输入想要分解素因数的数
factor_list = [] #设定保存素因数的列表
def factor_fun(n):
for i in range(2, n+1): #构建求素因数的循环
if n%i == 0: #如果n能整除i,则把i加入保存素因数的列表
factor_list.append(i)
if n!=i: #如果i不等于n,且i是n的因数,把n除以i得到的新数,调用factor_fun函数
factor_fun(int(n/i))
return factor_list
c = factor_fun(num) #调用函数
print(num, '=', end=' ',sep = ' ')
print('*'.join('%s' %id for id in factor_list)) #把factor_list列表中数值型的数据转换成字符,用*连接
输入50得到结果:
50
50 = 2*5*5
3.2 用join函数根据当前路径组成新路径
import os #导入路径模块
os.getcwd() #获取当前路径
data_save = os.path.join(os.getcwd(), 'data_save') #获取当前路径并组合新的路径
得到结果:
'C:\Users\Administrator\29_python中的join函数\data_save'
3.3 找到0.整体公众号设计目录下最新文件的绝对路径和名称
import os
import time
file_dir=os.path.dirname(os.path.abspath('.'))+'\0.整体公众号设计' #获取路径
lists=os.listdir(file_dir) #获取路径下的文件名
lists.sort(key=lambda fn:os.path.getatime(file_dir+"\"+fn)) #按修改时间排序输出目录下所有文件名称
file=os.path.join(file_dir,lists[-1]) #输出列表中最后一个文件的绝对路径和名称
得到结果:
'D:\新建文件夹\微信公众号\0.整体公众号设计\求关注图片.pptx'
通过3.3的代码可以对某个文件夹下的文件做批量操作。
本文是本人使用join函数后的一些见解,如有不当之处恳请指正。
-end-
- Silverlight 2 has a Timer (DispatcherTimer)
- 难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须调用Thread.Sleep(N)吗?
- silverlight 《Hands-On-Labs》教程系列
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
- 2018年机器学习和数据科学重要会议概览
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(60)-系统总结
- WCF技术剖析之一:通过一个ASP.NET程序模拟WCF基础架构
- 使用动态语言来制作silverlight
- 《资讯》霍金:人工智能的威胁就像核武器,世界将发生10大变化!
- [原创]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 厉害了,连美图CEO都开始热捧区块链了!
- Silverlight制作逐帧动画
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
- 糟糕了!这次新版微信,要干死所有小游戏了!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php实现微信企业转账功能
- Laravel框架模型的创建及模型对数据操作示例
- Python环境管理virtualenv&virtualenvwrapper的配置详解
- Matplotlib自定义坐标轴刻度的实现示例
- Python基于time模块表示时间常用方法
- ITK 实现多张图像转成单个nii.gz或mha文件案例
- 一文轻松掌握python语言命名规范规则
- php原生数据库分页的代码实例
- python对一个数向上取整的实例方法
- Laravel框架FormRequest中重写错误处理的方法
- python名片管理系统开发
- PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
- PHP实现微信商户支付企业付款到零钱功能
- yii2 开发api接口时优雅的处理全局异常的方法
- PHP调用全国天气预报数据接口查询天气示例