亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

找出列表列表中的多個值是否相同

找出列表列表中的多個值是否相同

蠱毒傳說 2021-08-14 15:52:27
這是我的問題:我有一個設置 x 和 y 坐標的列表(相鄰)列表。我正在嘗試創建一個可以確定要走哪條路的函數,它應該從該列表中返回一個元素。該返回值將是角色移動的方向。(例如:adjoining = [[1, 0], [3, 2], [1, 1]]。返回返回最小的 x 和 y 坐標,即 [1, 0]。)我的函數應該返回具有最低 x 坐標的值。如果有多個 x 坐標具有相同的低值,則應選擇 y 坐標最低的那個。如何創建一個函數來確定哪個 x 和 y 值最低?
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

只需像這樣使用 min() :


>>> adjoining = [[3,2],[1,1],[1,0]]

>>> min(adjoining)

[1, 0]


查看完整回答
反對 回復 2021-08-14
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

adjoining.sort(key= lambda x:x[0])

mins = [i for i in adjoining if i[0] == adjoining[0][0]]

if len(mins)>1:

   mins.sort(key= lambda x:x[1])

   min = [i for i in mins if i[1] == mins[0][1]]

else:

   min = mins

answer = min[0]

我用sort的key屬性。這允許您定義對列表進行排序所依據的標準。其余代碼基于列表理解。


[ item for item in a list_of_items if item == wanted_item]

此過濾器list_of_item基于某些選定的標準。只需要確保if可以評估以下內容True或False.


查看完整回答
反對 回復 2021-08-14
?
森林海

TA貢獻2011條經驗 獲得超2個贊

你可以這樣做:


minimum = min(adjoining, key=lambda elem: (elem[0], elem[1]))

結果:


[1, 0]

使用該key參數定義將影響排序過程的字段。首先,您將獲得基于x值的最小元素,如果有很多元素,它們將根據它們的y值再次排序。


另一種方法是使用模塊中的itemgetter函數operator:


import operator


adjoining = [[1, 0], [3, 2], [1, 1]]


minimum = min(adjoining, key=operator.itemgetter(0,1))


查看完整回答
反對 回復 2021-08-14
  • 3 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號