私は本当にPythonには新しく、今はエラーが発生していて、なぜこのエラーが出るのかわかりません。ラムダと英数字のPythonエラー
私は言葉で3つのリストを持っています。リストには、数字、リテラルワード、および英数字ワードが含まれています。これらのリストはtxtファイルに保存されます。各ファイルには、他のリストや新しい単語の単語を含めることができます。
私はこれらのリストを比較し、すべての単語を重複しないで新しいリストにコピーするのが好きです。だから私はすべての単語を含む重複はありませんが、1つの大きなリストがあります。
これは私のスクリプトです:
file_a = raw_input("File 1?: ")
file_b = raw_input("File 2?: ")
file_c = raw_input("File_3?: ")
file_new = raw_input("Neue Datei: ")
def compare_files():
with open(file_a, 'r') as a:
with open(file_b, 'r') as b:
with open(file_c, 'r') as c:
with open(file_new, 'w') as new:
difference = set(a).symmetric_difference(b).symmetric_difference(c)
difference.discard('\n')
sortiert = sorted(difference, key=lambda item: (int(item.partition(' ')[0])
if item[0].isdigit() else float('inf'), item))
for line in sortiert:
new.write(line)
k = compare_files()
私はスクリプトを実行すると、私は次のようなエラーメッセージが出ます:私のスクリプトで何が間違っている
Traceback (most recent call last):
File "TestProject1.py", line 19, in <module>
k = compare_files()
File "TestProject1.py", line 13, in compare_files
sortiert = sorted(difference, key=lambda item: (int(item.partition(' ')[0])
File "TestProject1.py", line 14, in <lambda>
if item[0].isdigit() else float('inf'), item))
ValueError: invalid literal for int() with base 10: '12234thl\n'
は誰でもアイデアや何かを?
はあなたの助け:)
「12234thl \ n」が何番になると思いますか? –
達成しようとしているソート順は何ですか? –
英数字の文字列を整数に変換しようとしているだけです。 – Anonymous