質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Python 3.x

    5877questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

リストの中の「"数字"(文字列)」をint型にしたい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 119

Sigma1630

score 11

全部が文字列で構成された(文字列化された数字を含む)リストの中の、
文字列化された数字(ex. "3", "9")をint型(ex.3,9)にしたいです。

【書いたコード】

ls = list(input())

for i in range(len(ls)):
    if ls[i].isdecimal==True:
        ls[i]=int(ls[i])

print(ls)

標準入力

12r46y

期待する出力

[1,2,"r",4,6,"y"]

実際の出力

["1","2","r","4","6","y"]

何が間違ってるのかわからず、恐れ入りますがご回答お願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

メソッドを呼び出し損ねてます。

if ls[i].isdecimal() == True:

また、ここの== Trueは冗長ですので無い方が良いでしょう。

なお

次のようにも書けます。

>>> ls = [int(e) if e.isdecimal() else e for e in ls]
>>> ls
[1, 2, 'r', 4, 6, 'y']

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/18 20:54

    すみません、なんとも恥ずかしい間違いでした。。
    ありがとうございます。

    キャンセル

+1

もう解決されているので、別解。

s = 'as123hsk38b8'

def to_int(x):
    try:
        return int(x)
    except ValueError:
        return x

s = [to_int(x) for x in s]

print(s)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    C# Dictionary

    var dic = new Dictionary<string, int>(); for (int i = 0; i < 64; i++) { dic.Add($"C_{i

  • 解決済

    Listを使って出力した乱数を奇偶にわけたいです

    某サイトのコレクションに関する問題で躓いています。 問題の条件として Listg型の可変長配列を生成し乱数を奇偶判別し格納するというメソッドを作りなさいと のことなのですが

  • 解決済

    MVC モデルのバリデーションについて

    モデルでアノテーション(Required)を指定しているプロパティが4つあります。 [Required] public string A { get; set;

  • 解決済

    [Qt]Qtのデザイン

    趣味でC++やっています。 馬鹿っぽい質問ですが、Windows上でQtを使う場合でMacのデザインにすることは可能でしょうか。 私はWindows上でしか使ったことがない

  • 解決済

    フィボナッチ数列の中から一つの数字を取り出す

     前提・実現したいこと フィボナッチ数列のn番目(n<=30)の数を出力したいのですが、30番目までを出力するコードはかけたのですがその中のn番目を出力するやり方がわからず検索して

  • 解決済

    pythonで連続出力

    ループ処理でリストから一つずつ取り出して、それを変換したものを、 一行に2個、半角スペースで区切って表示したいのですが、どうしたら良いでしょうか。 入力サンプル 3 2 46 

  • 解決済

    Stringクラスメソッドで詰まっている

    文字列("JANUARY"~"DESEMBER")の配列を作成した後、 ’R’が含まれる文字列と 各文字列中に最初に’R’がくるのは何文字目か?というのをやっているのですが、うまく

  • 解決済

    【Python】コア数を増やすほど遅くなる件について...

     前提・実現したいこと 以前、2回ほど質問させて頂きましたがどうしても予期しない結果が出てしまい、私なりに考察を立ててみましたが、考察が正しいかどうか教えて頂きたいです....

同じタグがついた質問を見る

  • Python 3.x

    5877questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。