0

私が書いたプログラムを使用して、2 つの .txt ファイルを結合しました。これら 2 つの .txt ファイルを結合すると、並べ替えられていないデータの組み合わせが残りました。

私のデータは次のようになります

Bud Abbott 51 92.3
Mary Boyd 52 91.4
Hillary Clinton 50 82.1
Don Adams 51 90.4
Jill Carney 53 76.3
Randy Newman 50 41.2

しかし、私はそれがこのように見えるようにしたい

 ['Bud', 'Abbott', 51, 92.3]
 ['Don', 'Adams', 51, 90.4]
 ['Mary', 'Boyd', 52, 91.4]
 ['Jill', 'Carney', 53, 76.3]
 ['Hillary', 'Clinton', 50, 82.1]
 ['Randy', 'Newman', 50, 41.2]

持っているものを欲しいものに変換するにはどうすればよいですか

ちなみに、最初のデータセットを取得するために必要なコードは次のようになります

def ReadAndMerge():

     library1=input("Enter 1st filename to read and merge:")
     with open(library1, 'r') as library1names:
          library1contents = library1names.read()
     library2=input("Enter 2nd filename to read and merge:")
     with open(library2, 'r') as library2names:
          library2contents = library2names.read()

     print(library1contents)
     print(library2contents)
     combined_contents = library1contents + library2contents  # concatenate text



     file = combined_contents
     lines = []

     for l in file:
          line = l.strip().split(" ")
          lines.append(line)


     lines.sort(key=lambda lines: lines[1])

     for line in lines:
          print(line)

print(combined_contents)
return(combined_contents)

ReadAndMerge()

ライブラリ1とライブラリ2はそれぞれ次のようになります

Bud Abbott 51 92.3
Mary Boyd 52 91.4
Hillary Clinton 50 82.1



Don Adams 51 90.4
Jill Carney 53 76.3
Randy Newman 50 41.2

ソートしてリストに入れるにはどうすればよいですか

あなたの新しい行でプログラムを更新しましたが、実行するとこのエラーが発生し続けます

Traceback (most recent call last):
 File "C:/Users/Shane/Documents/Amer CISC/readandmerge.py", line 30, in <module>
ReadAndMerge()
 File "C:/Users/Shane/Documents/Amer CISC/readandmerge.py", line 23, in ReadAndMerge
lines.sort(key=lambda lines: lines[1])
 File "C:/Users/Shane/Documents/Amer CISC/readandmerge.py", line 23, in <lambda>
lines.sort(key=lambda lines: lines[1])
 IndexError: list index out of range
 >>> 
4

1 に答える 1

1
def getListOfLinesInFile(file): 
    file = open(file, "r")
    lines = []    
    for l in file:
        line = l.strip().split(" ")
        lines.append(line)
    file.close()
    return lines

あなたのプログラムでそれを使用するには、あなたのReadAndMerge-function だけで:

def ReadAndMerge():
    library1 = input("Enter 1st filename to read and merge: ")
    library1_list = getListOfLinesInFile(library1)

    library2 = input("Enter 2nd filename to read and merge: ")
    library2_list = getListOfLinesInFile(library1)

    library_merged = library1_list + library2_list
    library_merged.sort(key=lambda library_merged: library_merged[1])

    print(*library_merged)
    return library_merged
于 2012-11-19T16:56:52.190 に答える