Python join()函數


今天寫python 100例時,有個題目是大致是這樣的:已知輸入形式是1+3+2+1,要求輸出形式為1+1+2+3

一開始思路是將輸入的字符串用split()函數划分成數組,在對數組進行排序,再用for循環輸出

代碼附上:

a = map(int,raw_input().split('+'))
a = sorted(a)
for i in a:
if(i != len(a)):
print i,'+'
else:
print i

 

雖然能夠輸出正確結果,但是代碼過於繁瑣。由於先前學習C語言,也做過相關算法練習,所以思想被固定。

再看了一下大神的代碼,簡直膜拜了。

代碼附上:

print "+".join(sorted(raw_input()[::2]))

 

代碼簡潔,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[,......]])

返回值:將多個路徑組合后返回

注:第一個絕對路徑之前的參數將被忽略

 

二、實例

#對序列進行操作(分別使用' '與':'作為分隔符)

>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
hello:good:boy:doiido


#對字符串進行操作

>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o


#對元組進行操作

>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
hello:good:boy:doiido


#對字典進行操作

>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
boy:good:doiido:hello


#合並目錄

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM