2016-11-22 52 views
0

我有這樣的元組的某些值(我不知道將它稱之爲元組的列表,或不!)四捨五入元組

ratings = [('5', 45.58139534883721), ('4', 27.44186046511628), ('3', 20.0), ('2', 5.116279069767442), ('1', 1.8604651162790697)] 

我想要第二個值四捨五入(或截斷,唐「T對我很重要)到小數點後2位,是這樣的:

[('5', 45.58), ('4', 27.44), ('3', 20.0), ('2', 5.11), ('1', 1.86)] 

我想是這樣的:

l = tuple([round(x,2) if isinstance(x, float) else x for x in ratings]) 

但這似乎爲n不工作。我可以嘗試什麼?

+1

類型應有盡有收視率是'tuple' –

回答

3

回合只有你的元組的第二個元素:

ratings = [('5', 45.58139534883721), ('4', 27.44186046511628), ('3', 20.0), ('2', 5.116279069767442), ('1', 1.8604651162790697)] 
l = [(item[0],round(item[1],2)) for item in ratings] 
# [('5', 45.58), ('4', 27.44), ('3', 20.0), ('2', 5.12), ('1', 1.86)] 
+0

這個工作。謝謝 –