python: sort
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)
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)