このプロジェクトは、「従業員名」と「月次売上データ」を含む外部.txtファイルからデータを抽出するために行っています。テキストファイルの形式(完全なファイル:「文字列」の後にfloatの12個のインスタンスが続く)
last name, first name
45
23
34
....
last name2, first name2
78
32
23
....
プログラムはほぼ完成していますが、結果を印刷するときに「姓、名」を「名、姓」にフォーマットする必要があります。これがその部分のコードなので、より良いアイデアが得られます。'dict()'と.iteritems()を使用して、元のファイルの7人の従業員とそれぞれの12か月の売上を調べています。
data = {} # dict: list of all values for person by person name
with open("SalesData.txt", "rt") as f:
data_key = f.readline() # We remember first line (first man)
data[data_key] = [] # empty list of values
for line in f:
# then we suppose every line is float.
try:
# convert to float
value = float(line.strip())
# add to data
data[data_key].append(value)
# If it does not convert, then it is next person
except ValueError:
# next person's name
data_key = line
# new list
data[data_key] = []
for employee, stats in data.iteritems():
print employee
'employee'は'lastname、first name'として保存されていることに注意してください。これを切り替えて、'、'を削除したいと思います。
どんな助けでも大歓迎です!dict()を使い始めたばかりですが、データの操作が難しい場合があります。
更新 主な問題は実際のフォーマットではありません。これが起こることです:私はデータを収集した後、「姓、名」をフォーマットしていました
print ' '.join(employee.split(',')[::-1]).strip()
これは機能しますが、結果は正確に次のように出力されます。
Shelly (first name)
Adams (last name -also notice the blank space before Adams)