uncleyong

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

函数: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

分类:

技术点:

相关文章: