2017-07-28 16 views
-2

に文字列のリストを変換します。 希望の出力は次のとおりです。18956は、私はこのようなリストを持っている1つの整数

これを行うには優雅な方法がありますか?

私の頭に浮かんでいる唯一の方法は、リストを通って10桁の必要な桁に数字を掛けて、すべてを追加することです。しかし、もっと良い方法があると確信していますね。 ご協力いただきありがとうございます。

+3

'INT( '' 参加([ "1"、 "8"、 "9"、 "5"、 "6"])) ' –

+0

あなたのすべての迅速なおかげで、ありがとう。申し訳ありませんが、自分で解決策を手に入れることができませんでした... – Cyaena

答えて

5

をintにキャスト:

それがもたらす、セパレータとして''を使用して単一の文字列(空の文字列)に各桁に参加します'18956'

それは、その後int()ファクトリ関数を使って文字列を整数に変換します

int(''.join(["1", "8", "9", "5", "6"])) 
2
int(''.join(["1", "8", "9", "5", "6"])) 

それはとても簡単ですが、私はそれを説明するつもりです:

まず、joinは、リストのすべての要素を取り、すべての要素を持つ文字列を作成し、セパレータ文字で「参加」。区切り記号が不要なので、''と置きます。

第二には、それは結果の文字列"18956"を取り、これが何をしたいん

0

>>> a = ["1", "8", "9", "5", "6"] 
>>> num = "".join(a) 
>>> num 
'18956' 
>>> number = int(num) 
>>> number 
18956 
1

あなたのリストをお試しください:

l = ["1", "8", "9", "5", "6"] 

方法1:

print(int(''.join(map(str,l)))) 

方法2:

digit = lambda nums: int(''.join(i for i in nums)) 
print(digit(l)) 

両方の出力が同じである:。

18956 
18956 
+0

数字の文字列がすでに文字列のときに、なぜ 'str'関数を呼び出すのですか? – JohanL

+0

真。編集された@JohanL – Inconnu

関連する問題