0

ファイル「var_input」から5行の入力を取得してリストに入力し、最初または2番目に各個別の番号をリストに入力するプログラムをPythonで作成しています

各数値の間からスペースを分離し、それを最初または2番目にリストに追加する最善の方法は何だろうと思っています。Pythonのsplitメソッドを使おうと思っているのですが、やり方がわかりません

入力ファイルのデータは次のようになります

18 24               
10 5
101 567
234 90
107 4567

最初に含む必要があります['18', '10', '101', '234', '107']

2番目に含める必要があります['24', '5', '567', '90', '4567']

これが私がこれまでに持っているものです

first = []
second = []

file_input = open('var_input')
input_list = file_input.readlines()

どうもありがとうございました。どんな助けでも大歓迎です

4

2 に答える 2

2

あなたはとでこれを行うことができzipますsplit

with open('var_input') as file_input:
    input_list = file_input.readlines()
first, second = zip(*[l[:-1].split() for l in input_list])

仕組み-[l[:-1].split() for l in input_list]リスト内包表記であり、split各行にメソッドを適用して次のようにします。

[["18", "24"], ["10", "5"], ["101", "567"], ["234", "90"], ["107", "4567"]]

zipは、複数のリストを一緒に圧縮する関数です(。を指定すると*、入力リストの各項目が個別の引数として扱われます)。各リストの最初のアイテム、次に各リストの2番目のアイテムを取得して「圧縮」します(各行に3つ以上のアイテムがある場合は、3つ以上の出力リストになります)。結果は次のようになります

[('18', '10', '101', '234', '107'), ('24', '5', '567', '90', '4567')]
于 2013-03-21T21:28:51.757 に答える
0
first = []
second = []

with open('var_input') as fp:
    for line in fp:
        temp = line.split()
        first.append(temp[0])
        second.append(temp[1])

これはばかげているように見えるかもしれませんが、シンプルで機能します。

于 2013-03-22T07:30:55.897 に答える