【红色为转载后新增部分】

函数:string.join()

Python中有join()和os.path.join()两个函数,具体作用如下:

join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join():将多个路径组合后返回

一、函数说明

1、join()函数

语法:'sep'.join(seq)

参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典

上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

2、os.path.join()函数

语法:os.path.join(path1[,path2[,......]])

返回值:将多个路径组合后返回

注:第一个绝对路径之前的参数将被忽略

>>> os.path.join('d',r'c:\a','b','c')
'c:\\a\\b\\c'

import os
BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATA_PATH = os.path.join(BASE_PATH,'data') print(BASE_PATH)
print(DATA_PATH)

G:\pytest
G:\pytest\data

二、实例

1.对序列进行操作(以 '.'为分隔符)

seq = ['hello','good','boy','doiido']

print('.'.join(seq))

hello.good.boy.doiido

2.对元组进行操作(以 ':'为分隔符)

seq = ('hello','good','boy','doiido')

print(':'.join(seq))

hello:good:boy:doiido

3.对字典进行操作

seq = {'hello':1,'good':2,'boy':3,'doiido':4}

print(':'.join(seq))

doiido:boy:hello:good

4.合并目录

import os

print(os.path.join('/hello/','good/boy/','doiido'))

/hello/good/boy/doiido

5.对字符串进行操作, (以 '-'为分隔符)

seq = 'ABC'

print('-'.join(seq))

A-B-C

三.Json字典转为SQL语句

#表名polls_questions

table_name = "polls_questions"

#需要插入的Json数据
data={'id': 1, 'question_text': 'you buy pro6?', 'pub_date':'2016-07-23 09:58:56.000000'}

#对每一个值加单引号
for key in data:
  data[key] = "'" + str(data[key]) + "'"

【备注】:对于值为字符串的处理,先获取字符串内容,获取出来是没有引号的,然后转为str类型

print(data['question_text'])
you buy pro6?
print(str(data['question_text']))
you buy pro6?
print("'"+str(data['question_text'])+"'")
'you buy pro6?'

#利用join()函数把id、question_text、pub_date合并在一起(id,question_text,pub_date)
key = ','.join(data.keys())

#利用join()函数把值合并在一起('1','you buy pro6?','2016-07-23 09:58:56.000000')
value = ','.join(data.values())

#INSERT INTO polls_questions (id,pub_date,question_text) VALUES ('1','2016-07-23 09:58:56.000000','you buy pro6?')

real_sql = "INSERT INTO " + table_name + " (" + key + ") VALUES (" + value + ")"

四、列表推导式

实现相同的功能,代码更加简洁。

列表推导式写9*9乘法表

print('\n'.join([' '.join(['%s*%s=%s'%(x,y,x*y) for x in range(1,y+1)]) for y in range(1,10)]))

非列表推导式写法

for i in range(1,10):
for j in range(1, i+1):
print(str(j)+'*'+str(i)+'='+str(j*i)+' ', end='') # end=''表示输出不换行
print('\n', end='')

参考:http://www.cnblogs.com/hjhsysu/p/5700962.html

Python中的join()函数的用法及列表推导式的更多相关文章

  1. Python中的join()函数的用法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下:    join():    连接字符串数组.将字符串.元组.列表中的元素以指定的字 ...

  2. 详解Python中的join()函数的用法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下:     join():    连接字符串数组.将字符串.元组.列表中的元素以指定的 ...

  3. (转)Python中的split()函数的用法

    Python中的split()函数的用法 原文:https://www.cnblogs.com/hjhsysu/p/5700347.html Python中有split()和os.path.split ...

  4. Python中关于join函数的陷阱?

    目录 说明 数据说明 正确示例 错误示例 解决办法 说明 最近在用Python的join函数连接多个列表时,出现了如下两个错误,即合并类型不一致.折腾了很久才找到原因,真是基础不牢,地动山摇. Typ ...

  5. python day12 ——1.生成器2.生成器表达式 3.列表推导式

    一.生成器 什么是生成器. 生成器实质就是迭代器. 在python中有三种方式来获取生成器: 1. 通过生成器函数. 2. 通过各种推导式来实现生成器 . 3. 通过数据的转换也可以获取生成器. 1. ...

  6. Python中的join()函数split()函数

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下:     join():    连接字符串数组.将字符串.元组.列表中的元素以指定的 ...

  7. Python中的split()函数的用法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(lis ...

  8. Python中的filter()函数的用法

    转载自:脚本之家 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的时,filter()把传入的函数依次作用于每个元素 ...

  9. Python中的strip()函数的用法

    函数:string.strip() Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 一.函数说明 strip() 语法:str.strip([rm]); 参数说明 rm ...

随机推荐

  1. Centos下DNS+NamedManager高可用部署方案完整记录

    之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环境 主机名 ip地址 dns01.kevin.cn 192.168.10.20 ...

  2. Docker容器学习梳理 - 容器硬盘热扩容

    前面已介绍了docker很多知识点的操作记录,今天这里梳理下docker容器空间扩展的操作.默认情况下,物理机下创建的docker容器的空间是10G(虚拟机下创建的docker容器空间就是虚拟机的空间 ...

  3. sixsix团队M2阶段Postmortem

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的问题:目前外卖网站比较多,用户很难快速找到合适的外卖,我们集合各个网站的外卖信息,为用户提 ...

  4. 实验五 TCP传输及加密

    实验内容: 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者DE ...

  5. Jquery画折线图、柱状图、饼图

    1.今天做了一个折线图,首先需要导js文件.这里有一个demo:http://files.cnblogs.com/files/feifeishi/jquery_zhexiantubingtuzhuzh ...

  6. C程序设计教学小结(选择结构)

    1. 函数使用的三个问题 函数声明语句   void add();   或  int add(int x,int y); 函数调用            add();     c=add(a,b) 函 ...

  7. java注解的简单介绍

    什么是注解 1.注解就是Annontation,Annontation是Java5开始引入的新特征,中文名称叫做注解,它提供了一种安全的类似注释的机制,可以起到减少配置的成果,给程序起到辅助性的作用 ...

  8. 第三个spring冲刺第9天

    今天是第三阶段冲刺的最后第二天了,我们该实现的功能基本已经全部实现了,有填空的,选择题的,还有计时的,目前就是在查BUG,看看有哪些地方有BUG需要修改,以下截图是我们团队所做的功能截图: 首页: 填 ...

  9. Java-System.getProperty()

    Java平台使用了一个Poperties对象来维护其自己的配置信息.System泪中包含有一个Properties对象用于描述当前工作环境的配置.系统properties包含了关于当前用户.当前Jav ...

  10. nodefs模块的使用demo

    为什么要使用递归?因为stat本身就是一个异步的函数所有存在异步问题不能够进行循环遍历. 在使用该种方法时候需要注意的一点是必须要在箭头标记处进行数据数组的存取.否则会由于异步问题导致输出空或者其他问 ...