簡體   English   中英

在沒有 numpy 的情況下重新排列二維數組中的行

[英]Re-Arrange rows in two-dimensional arrays without numpy

二維數組中的行根據每行中“*”的數量重新排列。

例子:

我的陣列:

[['*', '-', '*', '*', '*', '*'],
 ['*', '-', '-', '*', '-', '-'],
 ['-', '*', '*', '-', '-', '-'],
 ['*', '-', '*', '*', '-', '-'],
 ['-', '-', '*', '*', '*', '*']]

Expected output:

[['*', '-', '*', '*', '*', '*'],
 ['-', '-', '*', '*', '*', '*'],
 ['*', '-', '*', '*', '-', '-'],
 ['*', '-', '-', '*', '-', '-'],
 ['-', '*', '*', '-', '-', '-']]

*數最多的行將排在最前面,而-數最少的行將排在最后。 如果行具有相同數量的* ,則保持相對順序。

使用適當的鍵功能進行排序將執行以下操作:

array = [['*', '-', '*', '*', '*', '*'],
         ['*', '-', '-', '*', '-', '-'],
         ['-', '*', '*', '-', '-', '-'],
         ['*', '-', '*', '*', '-', '-'],
         ['-', '-', '*', '*', '*', '*']]

array.sort(key=lambda a: a.count('*'), reverse=True)
array
#[['*', '-', '*', '*', '*', '*'],
# ['-', '-', '*', '*', '*', '*'],
# ['*', '-', '*', '*', '-', '-'],
# ['*', '-', '-', '*', '-', '-'],
# ['-', '*', '*', '-', '-', '-']]

暫無
暫無

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

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