2017-06-12 12 views
0

は私が持つ文字列からわずか数を抽出:リスト内の番号をリスト外に番号を付ける。文字列

weight = [int(s) for s in fish.split() if s.isdigit()]、結果はlistです:[7088]

私が実行して文字列にそのリストを有効にしてみてください。

weight = str(weight) print("weight:", weight)が、プリントアウトが残る:

weight: [7088]

だから、僕は、整数のウィットを返すみましたH:

weight = int(weight)が、得た:

ValueError: invalid literal for int() with base 10: '[7088]'

はので、代わりに私がフロートに最初のリストの番号を変換してみました:

weight = float(weight)が、得た:

ValueError: could not convert string to float: '[7088]'

最終的にこれは私の正規表現がしないので私のコードが失敗するそれを数字として認識します。 (RegEx:regnumber = re.compile(r"(\d),(\d) | (\d)")

RegExが実際に認識できる数値/文字列/整数にリストの最初に返された数値を変換する簡単な方法はありますか?など

weight = str(weight[0]) 

または使用フロート()、int型()、あなたの条件に基づいて

+4

あなたが問題をよく考えていることを確かめてください。休憩をとることを検討してください:D – nikpod

+0

は、最初に 'int'に変換しません。 – salparadise

答えて

2

それは常にリストの一つだけの数の場合は、あなたが行うことができますあなたがしなければならない場合

weight = [s for s in fish.split() if s.isdigit()] 

しかし:

weight = map(str, weight) 
で始まるようにint型にそれを回します
+0

またはint(体重[0]) – vZ10

+0

ありがとうございます。 Idkは、私はそれをoverthinkingしていたと言うが、私は間違いなくそれについて愚かされていた。私を助けてくれてありがとう – theprowler

関連する問題