from operator import itemgetter
file = open("testdata.txt","r")
filein = []
for row in file:
filein.append(row.strip("\n"))
results= []
for item in filein:
results.append(item.split(","))
counter=0
for item in results:
itemlength = len(item)
for i in range(1, itemlength):
item[i] = int(item[i])
item.append(max(results[counter][1:4]))
item.append((sum(results[counter][1:4]))/3)
counter=counter+1
results.sort()
print("\n")
print(sorted(results,key=itemgetter(5),reverse=True))
[['DF', 8, 6, 8, 8, 7.333333333333333], ['ED', 10, 4, 6, 10, 6.666666666666667], ['TH', 9, 4, 7, 9, 6.666666666666667], ['EK', 9, 4, 5, 9, 6.0]]
我有两个问题。第一个是如何在新列表中打印第一个值(首字母)和第五个值[4],这是最高得分? 我的第二个问题如何才能将三个分数的平均分数[5]提高到小数点后两位?
这个任务是我的评估,我希望你能帮助我! 谢谢
答案 0 :(得分:2)
您可以解压缩并使用str.format,{:.2f}
会将平均值格式化为两位小数:
l = [['DF', 8, 6, 8, 8, 7.333333333333333], ['ED', 10, 4, 6, 10, 6.666666666666667],
['TH', 9, 4, 7, 9, 6.666666666666667], ['EK', 9, 4, 5, 9, 6.0]]
for ini, _, _, _, highest, avg in l:
print("Initials: {}, highest : {}, average: {:.2f}".format(ini, highest, avg))
Initials: DF, highest : 8, average: 7.33
Initials: ED, highest : 10, average: 6.67
Initials: TH, highest : 9, average: 6.67
Initials: EK, highest : 9, average: 6.00
答案 1 :(得分:1)
回合十进制数:
演示:
>>> round(1.7777, 2)
1.78
>>> round(1.7777, 0)
2.0
>>>
>>> "%.2f"%(1.239)
'1.23'
使用订阅从列表中获取值。
演示
>>> l = ["a", "b", "c", "d"]
>>> l[0] #- First item
'a'
>>> l[-1] #- Last item
'd'
>>> l[3] #- Last item i.e. Item from the index 3
'd'
>>>
代码:
>>> l = [['DF', 8, 6, 8, 8, 7.333333333333333], ['ED', 10, 4, 6, 10, 6.666666666666667], ['TH', 9, 4, 7, 9, 6.666666666666667], ['EK', 9, 4, 5, 9, 6.0]]
>>> for i in l:... print "%s, %d, %.2f"%(i[0], i[4], i[5])
...
DF, 8, 7.33
ED, 10, 6.67
TH, 9, 6.67
EK, 9, 6.00
>>>
答案 2 :(得分:0)
请继续订阅。
>>> mylist = [[1,2],[5,6]]
>>> mylist[0]
[1,2]
>>> mylist[0][1]
2
答案 3 :(得分:0)
获取新列表中的第一个和最后一个元素
l = [['DF', 8, 6, 8, 8, 7.333333333333333], ['ED', 10, 4, 6, 10, 6.666666666666667], ['TH', 9, 4, 7, 9, 6.666666666666667], ['EK', 9, 4, 5, 9, 6.0]]
l2 = []
for i in l:
l2.append([i[0], i[-1]])
print l2
l2 = [['DF', 7.333333333333333], ['ED', 6.666666666666667], ['TH', 6.666666666666667], ['EK', 6.0]]