前提・実現したいこと
Python3の初心者です。
正の整数と、アルファベット、改行コード(\n)が混ざった要素をもつリストがあります。整数は1桁とは限りません。リストの例を示します。
list_a=['1apple\n', '23banana\n', '34cherry\n', '4567dragonfruits\n']
このリストから、数字と改行コードを取り除き、アルファベットだけの要素をもつリストにしたいです.
実現したいリストは['apple', 'banana', 'cherry', 'dragonfruits']となります。
発生している問題・エラーメッセージ
コードを書きましたが、以下のエラーがでてきます(ファイル名だけ変えています)
Traceback (most recent call last):
File "XXXX.py", line 7, in <module>
for i in list:
TypeError: 'type' object is not iterable
更新しました
Traceback (most recent call last):
File "XXXX.py", line 4, in <module>
list_b[i]=re.sub(r"\d","",list_a[i])
TypeError: list indices must be integers or slices, not str
該当のソースコード
list_a=['1apple\n', '23banana\n', '34cherry\n', '4567dragonfruits\n']
import re
for i in list_a:
list_b[i]=re.sub(r"\d","",list_a[i])
list_c[i]=re.sub(r"\n","",list_b[i])
print(c)
更新しました
list_a=['1apple\n',
1import re 2for i in list_a: 3 list_b[i]=re.sub(r"\d","",list_a[i]) 4 list_c[i]=re.sub(r"\n","",list_b[i]) 5 print(c)
更新しました。このコードでうまくいきました。
a=['1apple\n', '23banana\n', '34cherry\n', '4567dragonfruits\n'] import re for i in a: b=re.sub(r"\d","",i) c=re.sub(r"\n","",b) print(c)
試したこと
リストではなく、個々の要素に対して
import re
a=re.sub(r"\d","","1apple\n")
print(a)
とするとエラーが出ないので、for文を使う方法が間違っているのかなと考えています。
補足情報(FW/ツールのバージョンなど)
windows10を使用しています。コードを書いて確かめるのはIDLEを使っています。
回答1件
あなたの回答
tips
プレビュー