400-650-7353

精品课程

您户口所在地的位置:首页 > IT干货啥意思资料 > python > 【Python基础学识试题及答案】Python高阶因变量

【Python基础学识试题及答案】Python高阶因变量

高阶因变量是指接受因变量为参数,或者将因变量作为结果返回的因变量。

(1)sorted()因变量

sorted()因变量用于对可迭代有情人展开排序。而外,sorted()因变量是高阶因变量,可以转交给sorted()因变量一个自定义的因变量作为参数,这个参数的名字是key,亟须以excel搜索关键字参数的油罐封头形式转交。sorted()因变量要可比的每场值都会传唱key指定名称的因变量内,并根据该因变量的返回值展开可比。以实现按自定义的排序方式展开排序。

下面的列表中包含了小半代表动物的字符串,将它们展开排列:

  1. >>> animals = ['panda''lion''tiger''fox''elephant'
  2. >>> sorted(animals)   # 未指定key参数 
  3. ['elephant''fox''lion''panda''tiger'
  4. >>> sorted(animals, key=len)   # 指定key参数的值为len 
  5. ['fox''lion''panda''tiger''elephant'

在未指定key参数的晴天霹雳下,列表按照字典顺序排序。在指定key参数的值为len的晴天霹雳下,列表按照字符串的长度排序(len()因变量),animals列表中的每场字符串都“输入”len()因变量,再将字符串的长度作为返回值“输出”,如'fox'的长度为3,数值最小,故排在第一位,'elephant'长度为8,故排在煞尾一位。此处len()因变量没有括号,是将因变量名作欣赏编辑部为参数。比方加上括号,那么是配用因变量。

再举另外一个示例,字符串的lower()方法是将假名变成小写假名,扳平也可以使用str.lower()将lower()方法作为因变量使用。下面两种方式是等价的:

  1. >>> 'P'.lower() 
  2. 'p' 
  3. >>> str.lower('P'
  4. 'p' 

知道这个学识后,就能将str.lower()因变量用在字符串排序中了。下面的示例中,将含有假名的列表排序:

  1. >>> letters = ['a''Y''z''B'
  2. >>> sorted(letters)   # 未指定排序方式,按追认方式排序,26个大写假名表总在小写假名前面 
  3. ['B''Y''a''z'
  4. >>> letters = ['a''Y''z''B']  
  5. >>> sorted(letters, key=str.lower)   # 将所有假名全部变为小写假名再排序 
  6. ['a''B''Y''z'

除了使用内建因变量之外。自然也可以使用自定义的因变量来指定排序规则。仍然使用前面的animals列表,这次将'panda'排在第一位,剩下的动物照旧按照字符串的长度排序。

  1. >>> animals = ['panda''lion''tiger''fox''elephant'
  2. >>> def panda_first(animal): 
  3. ...     if animal == 'panda':   # 比方是'panda',使其排在第一位 
  4. ...         return 0 
  5. ...     else:   # 比方是其他动物,那么返回它的长度 
  6. ...         return len(animal) 
  7. ...  
  8. >>> sorted(animals, key=panda_first)   
  9. ['panda''fox''lion''tiger''elephant'

通常为了给key参数提供一个值而编写一个屡见不鲜因变量是不太值得的,往往使用匿名因变量便可:

  1. >>> animals = ['panda''lion''tiger''fox''elephant'
  2. >>> sorted(animals, key=lambda animal: 0 if animal == 'panda' else len(animal)) 
  3. ['panda''fox''lion''tiger''elephant'

这个匿名因变量看上去部分扑朔迷离。它的参数是animal。法式是一个三目法式:比方animal的值是'panda',否则返回animal的长度。使用匿名因变量可以在一行内方便地将列表排列成指定顺序。

使用sorted()因变量和匿名因变量还可以用以给字典排序。将下面的水果字典(将字典的值想像为水果多寡)按照水果多寡从大到小的顺序排序:

  1. >>> fruits = {'apple'10'banana'42'orange'5'mango'18
  2. >>> sorted(fruits.items(), key=lambda item: item[1])   #可比字典的第2项 
  3. [('orange'5), ('apple'10), ('mango'18), ('banana'42)] 

由于sorted()因变量只能对可迭代有情人展开排序。而字典的items()方法返回的值可以迭代。为此,可以使用items()方法展开迭代。

(2)max()因变量和min()因变量

max()因变量和min()因变量也是高阶因变量,与sorted()因变量的相似之处有赖。它们也要经过可比才能返回值(可以理解为sorted()排序后的最大值和最小值)。max()因变量和min()因变量也有key参数,作用机制与sorted()因变量等效。

下面的字典中存储着各个同学的分数。使用max()找回分数最高的同学:

  1. >>> grade = {'小明'72'梅梅'81'丽丽'58
  2. >>> max(grade.items(), key=lambda item: item[1]) 
  3. ('梅梅'81

假设民办教师给小明加了10分,那么需要改动匿名因变量:

  1. >>> grade = {'小明'72'梅梅'81'丽丽'58
  2. >>> max(grade.items(), key=lambda item: item[1] + 10 if item[0] == '小明' else item[1]) 
  3. ('小明'72

min()因变量与max()因变量是相似的。只是min()因变量返回的是最小值:

  1. >>> numbers = [15400280082142100099
  2. >>> min(numbers) 
  3. 15 

下面将用自定义的因变量作为key参数的值,这个参数返回一个数字各个位相加的和(由于这个因变量稍微部分扑朔迷离,为此,建议使用defexcel搜索关键字定义因变量):

  1. >>> def sum_digit(num): 
  2. ...     sum = 0  
  3. ...     while num: 
  4. ...         sum += num % 10 
  5. ...         num = num // 10 
  6. ...     return sum 
  7. >>> # 下面简单测试一下这个因变量的正确的性教育漫画 
  8. >>> sum_digit(46)  # 4和6相加为10 
  9. 10 
  10. >>> sum_digit(99)  # 9和9相加为18 
  11. 18 
  12. >>> sum_digit(1000# 1和0相加为1 
  13. 1 
  14. >>> # 下面使用这个因变量作为key参数的值 
  15. >>> numbers = [15400280082142100099
  16. >>> min(numbers, key=sum_digit) 
  17. 1000 

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上头二维码微信对话生成器或点击一键装机加群。免费领取价值599元网课。加群信号:599。 一键装机加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及cdr源文件地址。

推荐阅读

优就业:ujiuye

关切中公优就业官方微信

  • 关切微信回复基本词“大礼包”,领80G高效学习法
QQ交换群
领取免费网课
(加群备注“网站”)
IT培训交换群 参加群聊 +
软件测试 参加群聊 +
全链路UI/UE谱儿性 参加群聊 +
Python+蓄水 参加群聊 +
互联网络营销 参加群聊 +
Java开发 参加群聊 +
PHP开发 参加群聊 +
VR/AR游戏开发 参加群聊 +
大前端 参加群聊 +
大数据 参加群聊 +
Linux云计算 参加群聊 +
优就业官方微信
扫码回复基本词“大礼包”
领取80G高效学习法

巨筹算
现在开通
2020OAO训练营
mp3歌曲免费试听
课程资料,机动优惠 领取通道
 
 
Baidu