2017-10-16 3 views
-1

は、私はこのようなリストがあります:リスト内のカンマ区切りリストを整数に変換するにはどうすればよいですか?例えば

AD= ['3,7', '6,7', '17,16', '16,23', '9,10']

をそして私は、彼らがペアだという事実を退治せずに、整数に文字列のそれぞれをオンにしたいです。私はすでに次のことを試してみたが、それはうまくいきませんでした

AD= [3, 7, 6, 7, 17, 16, 16, 23, 9, 10]

  for i in AD: 
      val= i.split(",") 
      for j in val: 
       j= map(int, j) 
+2

ようこそスタックオーバーフロー。あなたはすでにこれをやってみましたか? [どのくらいの研究努力が必要ですか](https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users)を確認してください。スタックオーバーフローはコーディングサービスではありません。あなたはあなたの問題を研究し、投稿する前に自分でコードを書いてみることを期待しています。具体的なことに固執している場合は、[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)と試した内容の要約を含めてお手伝いください。 – cramopy

答えて

0

あなたはこれを試すことができます。

import itertools 
AD= ['3,7', '6,7', '17,16', '16,23', '9,10'] 
final = list(map(int, itertools.chain.from_iterable([b.split(",") for b in AD]))) 
だから私はそれがに変身したくありません

出力:

[3, 7, 6, 7, 17, 16, 16, 23, 9, 10] 

あなたは、元のペアを節約したい場合:

import re 
AF=['0.27, 0.56', '0.24, 0.06', '0.44, 0.35'] 
final_data = [tuple(map(float, re.split(",\s*", i))) for i in AF] 

出力:

[(0.27, 0.56), (0.24, 0.06), (0.44, 0.35)] 
+0

ありがとう、@ Ajax1234、しかし、私はその出力で失われる数字の元のペアを節約したいと思った。 – claudiadast

+0

あなたはペアを保存したいという意味ですか?あなたは '3,7' - > 37を望んでいますか、それらをタプル(3,7)にしますか? – bhow

+0

@claudiadast最近の私の編集をご覧ください。 – Ajax1234

1

のように簡単:

>>> [ tuple(map(int, x.split(','))) for x in AD ] 
=> [(3, 7), (6, 7), (17, 16), (16, 23), (9, 10)] 

これはlist of tuplesとしてpairのためのあなたの必要性を節約します。

ここでは、区切り文字','に基づいて文字列がsplittinglistを通過しているし、その後intに値を変換した後tupleとしてそれらを一緒に入れて。

+0

この関数をdoubleのリストに適用しようとすると(上記の関数で "int"を "float"に置き換えた)、機能しません。 'AF = ['0.27,0.56'、 '0.24,0.06'、 '0.44,0.35']' – claudiadast

+0

Hmmmのようなリストにどのように適応させるのですか?本気ですか?私はちょうど今試して、それは動作します。私に教えてください: '[(0.27,0.56)、(0.24,0.06)、(0.44,0.35)]' –

+0

@claudiadast floatで試してみるとどうなるでしょうか?それはエラーか他の出力ですか?コードは次のようになります: '[tuple(AF)のxに対する(map(float、x.split( '、')))' –

0

信頼できる関数ですが、コンマの後ろにスペースやスペースを入れることはできません。

def pairize_inplace(iterable, splitter=','): 
    for i in range(len(iterable)): 
     iterable[i] = str(iterable[i].split(splitter)) 
関連する問題