2015-12-21 83 views
1

所以我有一個字符串,我想將它轉化成一個列表將字符串轉換爲一個列表和轉換元素爲整數

輸入:

"123|456|890|60"

輸出:

[123,456,890,60]

另一個例子,輸入:

"123"

輸出:

[123]

這裏是我做的,直到現在。

A=input() 
n=len(A) 
i=0 
z=0 
K="" 
Y=[0]*n 
while(i<n): 
    if(A[i]=="|"): 
    Y[z]=int(Y[z]) 
    j=+1 
    K="" 
    else: 
    Y[z]=K+A[i] 
    i+=1 
print(Y) 
+4

我們不是來爲你做功課的。你試過了什麼,它怎麼沒用? – Chris

+0

什麼阻止你?這是一個班輪。 – juanchopanza

+2

歡迎來到SO。請閱讀並相應更新您的問題:http:// stackoverflow。com/help/how-to-ask – Sam

回答

4

感謝您的嘗試編輯。分割一個字符串並將一個字符串轉換爲一個整數是非常常見的任務,Python已經內置了實現它們的工具。

str.split按給定分隔符將字符串分割成列表。 int可以將字符串轉換爲整數。您可以使用map將函數應用於列表的所有元素。

>>> map(int, "123|456|890|60".split('|')) 
[123, 456, 890, 60] 
0

使用list comprehension

代碼:

[int(a) for a in "123|456|890|60".split("|")] 

輸出:

[123, 456, 890, 60] 

注:

  • 拆分創建這裏list of strings在當前字符串在|
  • 分裂我們遍歷列表,並轉換字符串轉換爲int
0

這裏有一個類似的方法,使用正則表達式來代替:

import re 

def convert_string(s): 
    return map(int, re.findall(r'[0-9]+', s))  

或者使用列表理解:

import re 

def convert_string(s): 
    return [int(num) for num in re.findall(r'[0-9]+', s)] 

這是一種更爲通用的方法,適用於分隔輸入字符串中的數字的任何字符(在本例中爲'|')。