章节
问答
课签
笔记
评论
占位
占位

Python二维list

有时候,一维list并不能满足所有的要求(上述所有list均为一维list),这个时候需要二维list甚至更高维的list。
比如:
Alice最近的三次成绩分别是[100, 89, 92]
Bob最近的三次成绩分别是[70, 65, 81]
Candy最近的三次成绩分别是[88, 72, 77]
如果需要用一个列表存放三个同学的成绩,则需要这样:

alice_scores = [100, 89, 92]
bob_scores = [70, 65, 81]
candy_scores = [88, 72, 77]
all_scores = [alice_scores, bob_scores, candy_scores]
print(all_scores) # ==> [[100, 89, 92], [70, 65, 81], [88, 72, 77]]

这个时候得到的就是一个二维list,对于二维list,列表里面的每一个元素仍然是一个列表。这个时候,如果需要从二维list all_scores获取Bob最近第三次考试的成绩,可以这样写

alice_scores = [100,89,92]
bob_scores = [70,65,81]
candy_scores = [88,72,77]
all_scores = [alice_scores, bob_scores, candy_scores]
score = all_scores[1][2] # ==> 81

其中all_scores[1]得到Bob的最近三次成绩的列表,再通过下标[2],则可以得到Bob第三次的成绩。

任务

有三个长方体,他们的长宽高分别是[1, 2, 3], [5, 3, 2], [7, 3, 2],定义在数组L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],请分别求出三个长方体的表面积。

?不会了怎么办

参考答案:

L = [[1,2,3], [5, 3, 2], [7,3,2]]
for cube in L:
    length = cube[0]
    width = cube[1]
    height = cube[2]
    result = length * width * 2 + width * height * 2 + length * height * 2
    print(result)
||
1
2
# Enter a code
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 原谅我这一生放纵不_lpAHSZ
template='Life is{a},you need{b}'a='short'b='python'result=template.format(a=a,b=b)print(result)

最新回答 / 毁灭者013
L1=[1,2,3]L2=[5,3,2]L3=[7,3,2]L=[L1,L2,L3]sum=0for x in L:    a=(x[0]*x[1]+x[0]*x[2]+x[1]*x[2])*2    print(a)    sum+=aprint(sum)

最新回答 / qq_慕侠3039784
L = [[1,2,3], [5, 3, 2], [7,3,2]]N=3s=0if N>=1:    for cube in L:        length = cube[0]        width = cube[1]        height = cube[2]        result = length * width * 2 + width * height * 2 + length * height * 2        print(result)        s=s+resul...

最新回答 / weixin_慕九州8059632
错误1:if a.index(b) == x的右边少了1个冒号“:”错误2:S = S * b没有向右缩进4个字符

最新回答 / 还能学
for循环L1分别会是 [1,2,3]|[5,3,2]|[7,3,2]            L1[0]           0 1 2  0 1 2   0 1 2           每次取L1的0号元素

最赞回答 / 张张包529
因为L是二维list,对于二维list,列表里面的每一个元素仍然是一个列表,所以L[0]代表的是第一个数组而cube是一维list,它里面只包含了三个元素,所以cube[0]代表这个一维数组里的第一个元素

最赞回答 / weixin_慕圣3493772
是的。L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]for cube in L:#对每个一维数组,计算其三个边的成绩之和的两倍就是表面积    area=(cube[0]*cube[1]+cube[1]*cube[2]+cube[0]*cube[2])*2    print(area)

最新回答 / 送东野
# coding=utf8L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]x = 0for a in L :     p = 0     y = 0     for b in L :         z = y + 1             for c in L :                 if z<3:                     s = L[x][y] * L[x][z] * 2                     p = ...

最新回答 / 慕圣8481703
cube[0]对应的是当前循环到的长方体list中的长,cube[1]是当前循环的长方体list中的宽,cube[2]是当前循环的长方体list中的高也可以这么理解。

最新回答 / Tmosc
你最后的那个print前面要缩进,保持在列表中,每次读取都print一次

最赞回答 / 戚薇000
L1 = [1,2,3]#changL2 = [5,3,2]#kuanL3 = [7,3,2]#gaoi = 0all_L = [L1,L2,L3]for L in all_L:    c = 2*(all_L[0][i]*all_L[1][i]+all_L[1][i]*all_L[2][i]+all_L[0][i]*all_L[2][i])    i = i + 1    print (c)

已采纳回答 / _稚
# Enter a codei=[1,2,3]j=[5,3,2]x=[7,3,2]L=[i,j,x]for o in L:    p=L[0][0]*L[0][1]*L[0][2]    q=L[1][0]*L[1][1]*L[1][2]    w=L[2][0]*L[2][1]*L[2][2]print(p)print(q)print(w)#利用外层数组下标+内层数组下标查找内层数组里面的元素,再相乘就是面积了

最新回答 / qq_慕九州0566793
你用b循环a,a是list,里面的值是int,每次循环只有一个int值L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]for a in L:    x=a[0]    y=a[1]    z=a[2]    c=x*y*2+x*z*2+y*z*2    print c

最新回答 / qq_棠梨煎雪故人来_03907185
你这应该是从c啊之类的语言里面学的习惯吧,当你for i in L的时候,它迭代的不是下标1、2、3,它迭代的是里面的元素,在这句里迭代的是[1,2,3]和后面的两个列表。所以你这句话按机器理解的是area*=L[[1,2,3][5,3,2]],很明显,这是错的。所以这个错误报告给你说list的下标应该是整数或者是划分,不能是个列表。想达到你想要的效果,就for i in range(len(L)吧,但就算是按下标算,你思路也是错的。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言