【Python学习记录】range()、enumerate()、sorted()、lambda表达式、strip()

range():

range() 函数可创建一个整数列表,一般用在 for 循环中。

语法:

range(start, stop[, step])
  • start:计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0,5);
  • stop:计数到 stop 结束,但不包括 stop。例如 range(0,5) 是 [0, 1, 2, 3, 4] 不包括没有5;
  • step:步长,默认为1。例如 range(0,5) 等价于 range(0, 5, 1)。

实例:

>>>range(10)        # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)     # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)  # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)  # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]

enumerate() :

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

语法:

enumerate(sequence, [start=0])
  • sequence :一个序列、迭代器或其他支持迭代对象;
  • start -- 下标起始位置。

返回值:

    返回 enumerate(枚举) 对象。

实例:

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>>list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>>list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

>>>seq = ['one', 'two', 'three']
>>>for i, element in enumerate(seq):
...     print(i, element)
[0 one]
[1 two]
[2 three]

sorted():

sorted() 函数对所有可迭代的对象进行排序操作。

语法:

sorted(iterable, key=None, reverse=False) 
  • iterable:可迭代对象。
  • key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse:排序规则,reverse = True 降序 , reverse = False 升序(默认)。

返回值:

返回排序后的列表

实例:

>>>sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]     # 默认为升序

# 对字典进行排序
dic = {1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}
>>>sorted(dic) # sorted函数默认根据字典的key对其排序,同时只取key的内容,并以列表的形式返回。
[1, 2, 3, 4, 5] 

# 按key进行排序
>>>sorted(dic.keys())
[1, 2, 3, 4, 5]          # 只取key的内容,并以列表的形式返回
>>>sorted(dic.items(),key=lambda x: x[0])   
[(1, 'D'), (2, 'B'), (3, 'B'), (4, 'E'), (5, 'A')]

 # 按value进行排序
>>>sorted(dic.values())
['A', 'B', 'B', 'D', 'E']    # 只取value的内容,并以列表的形式返回
>>>sorted(dic.items(),key=lambda x: x[1])    
[(5, 'A'), (2, 'B'), (3, 'B'), (1, 'D'), (4, 'E')]

# 利用key进行倒序排序
>>>list = [5, 0, 6, 1, 2, 7, 3, 4]
>>>result_list = sorted(list, key=lambda x:x*-1) # 将列表中的元素按自身相反数从小到大进行排序
[7, 6, 5, 4, 3, 2, 1, 0]

# 逆序排列
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>>sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]

sort()与sorted()区别:

  • sort() 是应用在 list 上的方法,sorted 可以对所有可迭代对象进行排序操作;
  • sort()是对原列表自身排序,会修改原始的 list;而sorted() 返回的是一个新的 list,而不是在原来的基础上进行操作。

lambda表达式:

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

语法:

lambda [arg1 [,arg2,.....argn]]:expression

冒号前为形参,冒号后为返回值。

sum = lambda arg1, arg2: arg1 + arg2
print("相加后的值为:",sum(10,20))

# 表示函数没参数,只返回一个100
func1 = lambda :100

# 可以传递万能参数
func3 = lambda *args,**kwargs:len(args)+len(kwargs)
print(func3(1,2,3,wdc=123))

# lambda 表达式和三元运算的结合:输出两个值中的最大值
func = lambda a1,a2:a1 if a1 > a2 else a2
print(func(1,5))

# lambda表达式也可以放在列表中
func_list = [lambda x:x.strip(),lambda y:y+100,lambda x,y:x+y]
v1 = func_list[0]('wdc ')   
print(v1)         # 把末尾空格去掉了

v2 = func_list[1](100)
print(v2)

v3 = func_list[2](1,2)
print(v3)

strip():

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法:

str.strip([chars])

参数:

  • chars:移除字符串首尾指定的字符序列。

返回值:

返回移除字符串首尾指定的字符生成的新字符串。不改变原有字符串。

>>>str = "000987000"
>>>result = str.strip('0')
>>>print(str)   # 去除首尾字符 0
000987000
>>>print(result)
>>>987
 
 
>>>str2 = "   Runoob      ";   # 去除首尾空格
>>>print(str2.strip())
Runoob

 

你可能感兴趣的:(Python,python)