簡體   English   中英

如何從列表中獲取python中列表的第一個值和最后一個值?

[英]How do I take the first value and the last value from a list with a list in python?

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]提高到小數點后兩位?

這個任務是我的評估,我希望你能幫助我! 謝謝

您可以解壓縮並使用str.format{:.2f} :。2f {:.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

十進制數:

演示:

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

只需保留下標。

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

獲取新列表中的第一個和最后一個元素

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM