Я думаю, что у меня есть ошибка в моей установке python. Следующий код:Python случайным образом меняет данные Типы
i = 0
while i < 100:
for key in F1Test.keys():
mTest = np.append(mTest, float(F1Test[key]))
i = i+1
будет работать для случайного числа раз, прежде чем он выходит из строя дает следующее сообщение об ошибке:
ValueError: could not convert string to float: error
F1Test имеет следующие значения:
In [123]: F1Test
Out[123]:
{'AltoFlute': 0.75,
'AltoSax': 1.0,
'Bass': 0.9111111111111111,
'BassClarinet': 0.8,
'BassFlute': 0.8695652173913043,
'BassTrombone': 'error',
'Bassoon': 0.7692307692307692,
'BbClarinet': 0.9230769230769231,
'Cello': 0.8695652173913043,
'EbClarinet': 0.9411764705882353,
'Flute': 0.8695652173913044,
'Guitar': 1.0,
'Horn': 1.0,
'Oboe': 0.8750000000000001,
'Piano': 0.993103448275862,
'SopSax': 0.9230769230769231,
'TenorTrombone': 0.923076923076923,
'Trumpet': 1.0,
'Tuba': 0.888888888888889,
'Viola': 0.8735632183908046,
'Violin': 0.8974358974358975}
я нашел его в более крупном коде и сводится к этой форме. По-видимому, раз в 50-й раз он будет читать значения из словаря как строки вместо поплавков. Я использую ipython 1.2.1, python 2.7.6 и Ubuntu 14.04.
Меня не интересует обходной путь (я знаю, что могу проверить тип и сделать с ним), я просто нахожу это интересным, и я ищу, чтобы понять эту проблему.
Похоже, он пытается преобразовать «ошибку» BassTrombone в поплавок и провалиться. – Ryan
- значение 'F1Test [key]', которое является ошибкой, равным 'error'? – dm03514
Вы оба правы. В расширенном коде F1Test получает повторный инициализацию для каждого цикла, и время от времени он должен получить ошибку. Мой глаз не поймал нитку. Думаю, пора прогуляться. Спасибо! –