python升序、降序、反转 ----sort(),sorted(),reverse(),reversed()

1. list.sort() list本身将被修改

list.sort() — 正序排列;
list.sort(reverse = True) — 倒叙排列;

list.sort(cmp=None, key=None, reverse=False)
list = [3,6,4,2,8,5]
list.sort()
print(list)
list.sort(reverse=True)
print(list)

[2, 3, 4, 5, 6, 8]
[8, 6, 5, 4, 3, 2]

#字母的ascall码 大写<小写,a<z

list = ['P','y','t','h','o','n']
list.sort()
print(list)
list.sort(reverse=True)
print(list)

['P', 'h', 'n', 'o', 't', 'y']
['y', 't', 'o', 'n', 'h', 'P']

2.sorted(list) 返回一个新的list

sorted(list) — 正序排列;
sorted(list,reverse = True) — 倒叙排列;

sorted(iterable, cmp=None, key=None, reverse=False)
list = [3,6,4,2,8,5]
list1=sorted(list)
print(list1)
print(list)
list2=sorted(list,reverse=True)
print(list2)
print(list)

[2, 3, 4, 5, 6, 8]
[3, 6, 4, 2, 8, 5]
[8, 6, 5, 4, 3, 2]
[3, 6, 4, 2, 8, 5]
list = ['P','y','t','h','o','n']
list1=sorted(list)
print(list1)
list2=sorted(list,reverse=True)
print(list2)

['P', 'h', 'n', 'o', 't', 'y']
['y', 't', 'o', 'n', 'h', 'P']

sort ()与sorted()区别:
list的sort()方法返回的是对已经存在的列表进行操作,无返回值,而内建函数sorted()方法返回的是一个新的list,而不是在原来的基础上进行的操作。

3.reverse()反转函数

list.reverse() — 反转排列;
reversed(list) — 反转排列;

list = [3,6,4,2,8,5]
list.reverse()
print(list)

[5, 8, 2, 4, 6, 3]
reversed(seq)
seq --- 需要转换的序列,如元组、列表、字符串、range
my_list = [3,6,4,2,8,5] #列表
print(list(reversed(my_list)))
my_Tuple = ('P','y','t','h','o','n') #元组
print(list(reversed(my_Tuple)))
my_String = 'HelloWorld' # 字符串
print(list(reversed(my_String)))
my_Range = range(1, 10)    # range
print(list(reversed(my_Range)))

[5, 8, 2, 4, 6, 3]
['n', 'o', 'h', 't', 'y', 'P']
['d', 'l', 'r', 'o', 'W', 'o', 'l', 'l', 'e', 'H']
[9, 8, 7, 6, 5, 4, 3, 2, 1]

4. 按照某一列排序 df.sort_values()

用法:

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

参数讲解:
by: 要排序的名称或名称列表。(如果轴为 0 或“索引”,则 by 可能包含索引级别或列标签。如果轴为 1 或“列”,则 by 可能包含列级别或索引标签。
axis: 要排序的轴。若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
ascending:bool或bool的列表,默认为True,即为升序排列。 为多个排序顺序指定列表。如果这是一个布尔值列表,则必须匹配by的长度。
inplace: 是否用排序后的数据集替换原来的数据,默认为False,即不替换。
kind: 排序算法的选择。对于DataFrames,此选项仅在对单个列或标签排序时应用。
na_position: 如果是第一个,则将NaNs放在开头;如果是最后一个,把NaNs放在最后。
ignore_index: 如果为True,则结果轴将被标记为0,1,,n - 1。
key: 在排序之前对值应用键函数。这类似于内置sorted()函数中的key参数,显著的区别是这个key函数应该是向量化的。它应该期望一个Series,并返回一个与输入具有相同形状的Series。它将被独立地应用到每一列。

示例:

data = [[2, 'Meir', 3000], [3, 'Michael', 5000], [7, 'Addilyn', 2000], [9, 'Kannon', 7000]]
employees = pd.DataFrame(data, columns=['id', 'name', 'salary']).astype({'id':'int64', 'name':'object', 'salary':'int64'})

 	id 	name 	salary
0 	2 	Meir 	3000
1 	3 	Michael 5000
2 	7 	Addilyn 2000
3 	9 	Kannon 	7000
print(employees.sort_values(by=['salary']))  #按照col1列进行升序(默认的)排列
print('\n')
print(employees.sort_values(by='salary', ascending=False))  ##按照col1列进行降序排列
print('\n')
 id     name  salary
2   7  Addilyn    2000
0   2     Meir    3000
1   3  Michael    5000
3   9   Kannon    7000


   id     name  salary
3   9   Kannon    7000
1   3  Michael    5000
0   2     Meir    3000
2   7  Addilyn    2000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值