前提
以下の配列を取扱っております。
Python
1l = 2[["1", "2", "3"], 3 ["4", "5", "6"], 4 ["a", "b", "c"], 5 ["7", "8", "9"] 6]
実現したいこと
配列l
に含まれる["a", "b", "c"]
を除去して、数値だけの配列としたいです。
試したこと
「各行1列目に数字以外が来たら、その行は数値以外が格納されているとして削除する」といった判定をしようと思い、以下の記述としました。
Python
1del_idx = [] #邪魔な文字列の位置を格納するためのリスト 2for i in range(len(l)): 3 if l[i][0].isnumeric() == False: 4del_idx.append(i) 5for i in del_idx: #数値以外を削除 6 l.pop(i)
しかし、あまりにも冗長な記述となっているため、より簡潔な記述方法などあればアドバイス頂きたいです。
うまくいかなかったときのものでいいので、作ったコードを提示してください。 何かアドバイスできると思います。
コメントありがとうございます。
「各行1列目に数字以外が来たら、その行は数値以外が格納されているとして削除する」といった判定をしようと思い、以下の記述としました。
del_idx = [] #邪魔な文字列の位置を格納するためのリスト
for i in range(len(l)):
if l[i][0].isnumeric() == False:
del_idx.append(i)
for i in del_idx: #数値以外を削除
l.pop(i)
しかしあまりにも冗長であるし、汎用性が低いと思いスマートに記述できないか考えておりました。
ここは、質問についてのコメントを書くところですから、回答は質問を編集して追記しましょう。
コードのインデントも保存されませんし。
大変失礼いたしました。追記します。
回答2件
あなたの回答
tips
プレビュー