У меня есть следующий список:Преобразовать плавать только в списке смешанного типа
ls1 = ['xxx', 3.88884, 2.383, 1.999, '-']
, что я хочу сделать, это преобразовать значение с плавающей точкой в "%.2f"
, в результате чего это:
['xxx', '3.88', '2.38', '1.99', '-']
Но почему этот код не прошел?
def stringify_result_list(reslist):
finals = []
print reslist
for res in reslist:
if type(res) == 'float':
tmp = "%.2f" % res
finals.append(tmp)
else:
finals.append(res)
print finals
return finals
stringify_result_list(ls1)
'type' не возвращает строку. Например, тип «>>>» (тип (10)) ' –
linuxfan
И вы почти никогда не хотите проверять' type (res) 'anyway; используйте 'isinstance'. Если кто-то дал вам экземпляр подкласса 'float' (например, NumPy' float64', который выглядит почти как 'float' почти во всех отношениях), хотите ли вы, чтобы он был преобразован в строку или нет? – abarnert