在python中經常會遇到列表中元素轉換為字串,字串轉換為列表,將字串打散的等問題。下面依次說下我的做法:
1. 讀入整數
在做一些oj時,經常碰到讀取輸入的整數,如果是讀入單個整數,可以用
x = input()
這樣x返回的結果就是整數,無需轉換,但如果輸入是
123 456 78
這樣的,光靠input()就比較吃力。可以這樣
>>> inlist = raw_input() #讀取原始輸入字串
123 456 78
>>> inlist
'123 456 78' #結果為乙個字串
>>> inlist = inlist.split() #把長字串按空格分隔,打散成多個字串
>>> inlist
['123', '456', '78'] #變成了多個字串
>>> inlist = [int(inlist[i]) for i in range(len(inlist))] #把字串轉為整型
>>> inlist
[123, 456, 78] #得到了輸入的整數,按索引獲取相應值
這裡變數的轉換過程沒有用新的變數名,這裡是為了方便,也是因為python支援動態型別,可能對剛學python且有c/c++程式設計習慣的同學來說不習慣。
2. 整型列表轉為字串
>>> inlist = [1, 2, 3, 4]
>>> inlist
[1, 2, 3, 4]
>>> inlist = [str(inlist[i]) for i in range(len(inlist))]
>>> inlist
['1', '2', '3', '4']
>>> ('').join(inlist)
'1234'
3. 字串的打散及組合
打散
>>> s = list(s)
>>> s = 'hello'
>>> s
'hello'
>>> s = list(s)
>>> s
['h', 'e', 'l', 'l', 'o'] #打散後的結果,如果是要把整數打散,則要先轉為字串
組合1
>>> s=list('hello')
>>> str = ''
>>> for i in s:
... str += i
...
>>> str
'hello'
這裡會出現...和一行空行是因為在互動端做的。
組合2利用join函式,更方便
>>> s=list('hello')
>>> s
['h', 'e', 'l', 'l', 'o']
>>> s = ('').join(s)
>>> s
'hello'
python中字串與列表的相互轉換
前兩塊是字串轉列表,第三塊為列表轉字串 list 字串轉成列表形式,字串中的每個元素都在列表中單個元素呈現 str1 1234 print str1 結果為 1234 current list str1 print current 結果為 1 2 3 4 簡單的字串可以理解為將,字串轉換成列表。但其...
python中如何把列表轉換為字串
lis 1 2 3 4 5 s join lis print s 1 2 3 4 5 語法格式為 str.join sequence sequence是序列型別,序列型別有列表 元組 range 如果列表中為int型,可使用map lis 1,2,3,4,5 s join map str,lis p...
Python字串和列表互相轉換
string.split seq none,maxsplit 1 seq 切割的規則符號,預設為空格,如果字串中沒有空格則不分割 maxsplit 切割次數,預設 1無限制 返回值 列表 coding utf 8 info str my name is baize info list 1 info ...