这是我到目前为止所做的:
def file_to_dict(f):
""" (file open for reading) -> dict of {float: int}
f contains exchange rate changes as floating point numbers separated
by whitespace. Return a dict with exchange rate changes as keys and the
number of occurrences of the exchange rate changes as values.
"""
file = open(f, 'r')
data = list(file.read().strip().split('\n'))
数据是:
0.0045 0.0160 -0.0028 -0.0157 -0.0443 -0.0232 -0.0065 -0.0080 0.0052
-0.0052 -0.0283 -0.0087 -0.0020 -0.0080 -0.0065 -0.0290 0.0180 0.0030
-0.0170 0.0000 -0.0185 -0.0055 0.0148 -0.0053 0.0265 -0.0290 0.0010
-0.0015 0.0137 -0.0137 -0.0023 0.0008 0.0055 -0.0025 -0.0125 0.0040
如何将每个号码作为列表中的项目?
例如:[0.0045, 0.0160, etc...] or ['0.0045', '0.0160', etc...]
答案 0 :(得分:1)
这样的东西?
>>> with open('fileName', 'r') as f:
newList = []
for line in f:
newList.extend(map(float, line.split()))
>>> newList
[0.0045, 0.016, -0.0028, -0.0157, -0.0443, -0.0232, -0.0065, -0.008, 0.0052, -0.0052, -0.0283, -0.0087, -0.002, -0.008, -0.0065, -0.029, 0.018, 0.003, -0.017, 0.0, -0.0185, -0.0055, 0.0148, -0.0053, 0.0265, -0.029, 0.001, -0.0015, 0.0137, -0.0137, -0.0023, 0.0008, 0.0055, -0.0025, -0.0125, 0.004]
因为,您不能使用map()
,执行类似
>>> with open('fileName', 'r') as f:
newList = []
for line in f:
for elem in line.strip().split():
newList.append(float(elem))
答案 1 :(得分:0)
由于你不能使用map而且可能没有使用生成器,只需使用2 for for循环
另外听起来你可以使用字符串存储你的花车,这有助于你的精确度,因为浮动比较很麻烦。
stringlist = []
with open('fileName', 'r') as file:
for line in file:
for item in line.split():
stringlist.append(item) # this stores strings
Spoiler 如果你想计算这些花车的出现次数并将它们存储在dict中,因为它似乎是你的作业,你可以这样做:
myDict = {}
for value in stringlist:
if value in myDict.keys(): # this would pose float comparison issues if you used float keys
myDict[value] += 1
else:
myDict[value] = 1
print myDict
答案 2 :(得分:0)
列表理解:
list_ = [
float(number) for line in open("filename", "r")
for number in line.strip().split()
]