[英]how to do set() function in Python 2D array?
我創建了一個包含 n 個元素的二維數組!
n = int(input())
a = [[input(),float(input())] for _ in range(n)]
輸出
a = [['Harry', 37.21], ['Berry', 37.21], ......... ['Akriti', 41.0], ['Harsh', 39.0],['Marsh', 35.5]]
如何在 python 中使用 sort() 和 set() 找到第二個最低分和相應的名稱,而不使用多個循環?
嘗試這個:
a = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.21], ['Akriti', 41.0], ['Harsh', 39.0],['Marsh', 35.5]]
a.sort(key=lambda x: x[1])
print(a)
print('second lowest is :' )
print(a[1])
# these lines add on second edit
import numpy as np
a = np.array(a)
a[[i for i in (range(len(list(a)))) if a[i][1] == a[1][1]],:]
輸出:
[['Marsh', 35.5], ['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.21], ['Harsh', 39.0], ['Akriti', 41.0]]
second lowest is :
['Harry', 37.21]
array([['Harry', '37.21'],
['Berry', '37.21'],
['Tina', '37.21']], dtype='<U6')
如果你想使用set()
你可以試試這個:
a = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.21], ['Akriti', 41.0], ['Harsh', 39.0],['Marsh', 35.5]]
b = set(tuple(t) for t in a)
b = sorted(b, key=lambda x: x[1])
b
輸出:
[('Marsh', 35.5),
('Berry', 37.21),
('Harry', 37.21),
('Tina', 37.21),
('Harsh', 39.0),
('Akriti', 41.0)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.