我如何將字符串轉換成int在python 說我有這個數組將字符串轉換成int蟒蛇
['(111,11,12)','(12,34,56)'] to [(111,11,12),(12,34,56)]
任何幫助將不勝感激感謝
我如何將字符串轉換成int在python 說我有這個數組將字符串轉換成int蟒蛇
['(111,11,12)','(12,34,56)'] to [(111,11,12),(12,34,56)]
任何幫助將不勝感激感謝
你可以嘗試一些重:
import re
src = ['(111,11,12)', '(12,34,56)']
[tuple([int(n) for n in re.findall(r"(\d+),(\d+),(\d+)", s)[0]]) for s in src]
非常感謝 – miik
import ast
a = "['(111,11,12)','(12,34,56)']"
[ast.literal_eval(b) for b in ast.literal_eval(a)]
# [(111, 11, 12), (12, 34, 56)]
編輯:如果你有一個字符串列表(而不是字符串),就像@DSM建議,那麼你必須修改它:
a = ['(111,11,12)','(12,34,56)']
[ast.literal_eval(b) for b in a]
# [(111, 11, 12), (12, 34, 56)]
的OP似乎有一個列表字符串,而不是字符串(修改是微不足道的,當然。) – DSM
EVAL是一件壞事mkay – Goranek
@Goranek'ast.literal_eval'是內置'eval'不同 - 它是完全安全的使用,甚至當處理來自不受信任來源的數據。有關更多信息,請參閱http://docs.python.org/2/library/ast.html#ast-helpers。 – RocketDonkey
您可以將字符串轉換爲int與INT()關鍵字:
Python 2.7.2 (default, Jun 20 2012, 16:23:33)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> int('42')
42
但是你給的例子似乎表明要對整個元組,而不是一個整數做到這一點。如果是這樣,你可以使用內置的eval函數:
>>> eval('(111,111)')
(111, 111)
通過閱讀你的問題,我看你有一個字符串列表:
l = ['(111,11,12)','(12,34,56)']
並且您想將其轉換爲數字列表...
# some cleaning first
number_list = [x.strip('()').split(',') for x in l]
for numbers in number_list:
numbers[:] = [int(x) for x in numbers]
print number_list
對不起,列表理解解析,如果你是新的,看起來很奇怪,但是一個非常常見的Python成語,你應該熟悉它。
玩得開心!
def customIntparser(n):
exec("n="+str(n))
if type(n) is list or type(n) is tuple:
temps=[]
for a in n:
temps.append(customIntparser(str(a)))
if type(n) is tuple:
temps=tuple(temps)
return temps
else:
exec("z="+str(n))
return z
樣品測試:
>>>s = "['(111,11,12)','(12,34,56)']"
>>>a=customIntparser(s)
>>> a
# [(111, 11, 12), (12, 34, 56)]
>a[0][1]
# 11
@closevoter:我看不出有任何理由爲什麼這應該也是本地化的,雖然你可以選擇投爲重複 – Abhijit