/ / Jak mogę pobrać pierwszą wartość i ostatnią wartość z listy z listą w pythonie? - Python, lista

Jak pobrać pierwszą wartość i ostatnią wartość z listy z listą w pythonie? - python, lista

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]]

Mam dwa pytania. Po pierwsze, jak mogę wydrukować pierwszą wartość (inicjały) z piątą wartością [4], która jest najwyższym wynikiem, na nowej liście? Moje drugie pytanie: jak mogę uzyskać średni wynik [5] z trzech wyników do 2 miejsc po przecinku?

To zadanie jest dla mojej oceny, mam nadzieję, że możesz mi pomóc! Dziękuję Ci

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz rozpakować i używać str.format, {:.2f} sformatuje średnią z dokładnością do dwóch miejsc po przecinku:

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 dla odpowiedzi nr 2

Okrągły liczba dziesiętna:

Próbny:

>>> round(1.7777, 2)
1.78
>>> round(1.7777, 0)
2.0
>>>

>>> "%.2f"%(1.239)
"1.23"

Posługiwać się Subskrypcja aby uzyskać wartość z tej listy.

Próbny

>>> 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"
>>>

kod:

>>> 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
>>>

0 dla odpowiedzi № 3

Po prostu kontynuuj subskrypcję.

>>> mylist = [[1,2],[5,6]]
>>> mylist[0]
[1,2]
>>> mylist[0][1]
2

0 dla odpowiedzi nr 4

Aby uzyskać pierwszy i ostatni element na nowej liście

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]]