python 列表join_Python中的join()函数的用法及列表推导式

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

函数: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='')

1024732-20170620170317210-67171468.png

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值