python: sort

®Geovin Du Dream Park™ / 2024-10-07 / 原文

 

table = [ ['1', 'Du', 'GeovinDu', '13824350518',92],
             ['2', 'Rose', 'Tom', '1882458888',38],
             ['3', 'Lin', 'bo', '852000000',87],
             ['4', 'Ada', 'Jaing', '18999999999',87]]
# Bubble Sort冒泡排序法
columnindex=1
print(type(table[0][columnindex]),table[0][coumnindex])

for i in range(0,len(table)-1):
   #for j in range(0, len(table[0]) - i - 1):
   #print(table[i][j],table[i+1][j],table[i],table[i+1])
   if type(table[i][columnindex])==int:
       if table[i][columnindex]<table[i+1][columnindex]:
          temp = table[i]
          table[i] = table[i+1]
          table[i+1] = temp
   if type(table[i][columnindex])==str:       
       if table[i][columnindex][0].lower()<table[i+1][columnindex][0].lower():
          temp = table[i]
          table[i] = table[i+1]
          table[i+1] = temp
            

print(table)

  

 

table = [ ['1', 'Du', 'GeovinDu', '13824350518',92],
             ['2', 'Rose', 'Tom', '1882458888',38],
             ['3', 'Lin', 'bo', '852000000',87],
             ['4', 'Ada', 'Jaing', '18999999999',87]]
# Bubble Sort冒泡排序法
curr=0
tablesore=[]
columnindex=4
for i in range(0,len(table)-1):
   #for j in range(0, len(table[0]) - i - 1):
   #print(table[i][j],table[i+1][j],table[i],table[i+1])
   if table[i][columnindex] >table[i+1][columnindex]:
      temp = table[i]
      table[i] = table[i+1]
      table[i+1] = temp
            

print(table)

print('*********')
table = [ ['1', 'Du', 'GeovinDu', '13824350518',92],
             ['2', 'Rose', 'Tom', '1882458888',38],
             ['3', 'Lin', 'bo', '852000000',87],
             ['4', 'Ada', 'Jaing', '18999999999',87]]

table.sort(key=lambda column: (column[4],column[0] ), reverse=True)
print(table)
table.sort(key=lambda column: (column[4]), reverse=True)
print(table)
table.sort(key=lambda column: (column[4],column[0]), reverse=True)
print(table)
sorted(table, key=lambda x: x[4], reverse=True)
print(table)



# from https://scripteverything.com/python-2d-list-sort-by-multiple-columns-code-examples-no-imports-one-liners
# from https://numpy.org/doc/stable/reference/generated/numpy.sort.html
# from https://thispointer.com/sorting-2d-numpy-array-by-column-or-row-in-python/

  

   def BubbleSort(table: list, columnindex: int) -> list:
        """
        :param table: Two Dimensional (2D) Array
        :param columnindex: 需要排序的列索引
        :return: tabe sorted
        """
        for i in range(0, len(table) - 1):
            # 考虑数据类型
            # print(table[i][j],table[i+1][j],table[i],table[i+1])
            if type(table[i][columnindex]) == int:
                if table[i][columnindex] < table[i + 1][columnindex]:
                    temp = table[i]
                    table[i] = table[i + 1]
                    table[i + 1] = temp
            if type(table[i][columnindex]) == str:
                if table[i][columnindex][0].lower() < table[i + 1][columnindex][0].lower():  # 第一个字母排序,以小写字母
                    temp = table[i]
                    table[i] = table[i + 1]
                    table[i + 1] = temp
        return table

  

if __name__=="__main__":
    """
    main import
    """
    table = [['1', 'Du', 'GeovinDu', '13824350518', 92],
             ['2', 'Rose', 'Tom', '1882458888', 38],
             ['3', 'Lin', 'bo', '852000000', 87],
             ['4', 'Ada', 'Jaing', '18999999999', 87]]
    BubbleSort(table,4)
    print(table)