鱼C论坛

 找回密码
 立即注册
查看: 1398|回复: 3

list切片和函数定义函数问题

[复制链接]
发表于 2018-1-27 17:21:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
0. 为什么返回的t[1]是表示L1里面的分数?
1. t[1]不应该是('Adam', 92)吗?
2. 不定义函数的话,如何在新的列表里得到L1的所有分数?
list切片 & 定义函数.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-27 18:02:25 | 显示全部楼层
你写的函数里没有t这个变量(参数名是n)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-27 23:07:06 | 显示全部楼层
0. 你没有定义t, 所以运行应该会出错
1. 同上
2. 要在新列表里得到L1的所有分数,代码如下
  1. L1 = [('a', 1), ('b', 2), ('c', 3)]
  2. L2 = [i[1] for i in L1]
  3. print(L2)
复制代码

输出结果为:[1, 2, 3]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-29 14:39:29 | 显示全部楼层
如果你图片上的程序是你的全部程序的话,肯定执行不下去。所以我猜测你想要的程序应该是:
l1=[('Bob',75),('Adam',92),('Bart',66),('Lisa',88)]
def by_score(t):
      print(t[1])
      return t[1]
l2=sorted(l1,key = by_score)
print(l2)
执行结果:
75
92
66
88
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
里边的t是代表l1里边的每个元素,而t[1],在代表的是l1里边的每个元素里边的第二个元素,也就是那些成绩,正如打印出来的75,92,66,88。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-27 13:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表