python 常用的内置函数 sorted、zip、eval、enumerate

____tz_zs

sorted

sorted()函数,接收任何可迭代对象,返回一个排序后的新对象。

l1 = [2, 4, 3, 1, "6", "a", 5, 9, 7]
new_l1 = sorted(l1)
print(new_l1)
# [1, 2, 3, 4, 5, 7, 9, '6', 'a']
  • sorted() 函数可对任意可迭代对象进行排序
# sorted()函数可对任意可迭代对象进行排序
l3 = ['a', 'A', 'b', 'B', 'c', 'C']
new_l3 = sorted(l3)
print(new_l3)
# ['A', 'B', 'C', 'a', 'b', 'c']
  • reverse 参数默认为 False,表示正序排序。
res2 = sorted([11, -13, 56, 22, 653, 456, 0, -2], reverse=True)  # 倒序
print(res2)  # [653, 456, 56, 22, 11, 0, -2, -13]
  • key 参数的值是一个函数,他对 list 中的每个原始执行操作后作为排序依据。
# key参数的值是一个函数,他对list中的每个原始执行操作后作为排序依据。
new_list1 = sorted(l1, key=lambda x: x * -1)
print(new_list1)

l4 = [['aa', 2], ['bb', 1], ['cc', 3]]
new_l4 = sorted(l4, key=lambda x: x[1])
print(new_l4)
# [['bb', 1], ['aa', 2], ['cc', 3]]
res3 = sorted([11, -13, 56, 22, 653, 456, 0, -2], key=abs)  # 绝对值
print(res3)  # [0, -2, 11, -13, 22, 56, 456, 653]

res4 = sorted(["acd", "Abc", "cdd", "aaaaa", "aA"])
print(res4)  # ['Abc', 'aA', 'aaaaa', 'acd', 'cdd']
res5 = sorted(["acd", "Abc", "cdd", "aaaaa", "aA"], key=str.lower)  # 字符串大小写
print(res5)  # ['aA', 'aaaaa', 'Abc', 'acd', 'cdd']
# 用于字典排序

m_dict = {"1": [2, 5], "2": [3, 1], "3": [1, 3], "4": [5, 4], "5": [4, 2], }
# 对于字典通过字典的key排序
sort_by_k = sorted(m_dict.items(), key=lambda kv: kv[0])
print(sort_by_k)
# 对于字典通过字典的value排序
sort_by_v0 = sorted(m_dict.items(), key=lambda kv: kv[1][0])
print(sort_by_v0)

sort_by_v1 = sorted(m_dict.items(), key=lambda kv: kv[1][1])
print(sort_by_v1)

"""
[('1', [2, 5]), ('2', [3, 1]), ('3', [1, 3]), ('4', [5, 4]), ('5', [4, 2])]
[('3', [1, 3]), ('1', [2, 5]), ('2', [3, 1]), ('5', [4, 2]), ('4', [5, 4])]
[('2', [3, 1]), ('5', [4, 2]), ('3', [1, 3]), ('4', [5, 4]), ('1', [2, 5])]
"""

zip

zip() 函数传入可迭代的对象,将对象中的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果可迭代对象的元素个数不一样,则返回列表长度与最短的对象相同。

#!/usr/bin/python2.7
# -*- coding:utf-8 -*-

"""
@author:    tz_zs
"""

l1 = [2, 4, 3, 1, "6", "a", 5, 9, 7]
l2 = [22, 44, 33, '11', 66, 'aa', '55']

# zip()
result = zip(l1, l2)
print(result)
# [(2, 22), (4, 44), (3, 33), (1, '11'), ('6', 66), ('a', 'aa'), (5, '55')]

eval

eval(source, globals=None, locals=None)
eval() 函数用来执行一个字符串表达式,并返回表达式的值。

#!/usr/bin/python2.7
# -*- coding:utf-8 -*-

x = 3
result = eval('4*x')
print(result)  # 12

result = eval('x**3')
print(result)  # 27

result = eval('3+3')
print(result)  # 6

result = eval('x*x')
print(result)  # 9

enumerate

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合转换为一个索引序列,一般用于for循环中,同时列出元素和元素的索引号。

my_list = ['a', 'b', 'c', 'd']
for i, x in enumerate(my_list):
    print i, x
'''
0 a
1 b
2 c
3 d
'''

for i, x in enumerate(my_list):
    print i, my_list[i]
'''
0 a
1 b
2 c
3 d
'''

for item in enumerate(my_list):
    print item
'''
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
'''

.

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值