FIsh论坛《零基础入门学习Python》| 第012讲 课后测试题及答案

FIsh论坛《零基础入门学习Python》| 第012讲:列表:一个打了激素的数组3:

测试题

1.如果不上机操作,你觉得会打印什么内容?

old = [1, 2, 3, 4, 5]
new = old
old = [6]
print(new,'\n',old)
输出结果:
[1, 2, 3, 4, 5] 
 [6]

2.请问如何将下边这个列表的’小甲鱼’修改为’小鱿鱼’?

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0] = '小鱿鱼'

print(list1 )

输出结果:
[1, [1, 2, ['小鱿鱼']], 3, 5, 8, 13, 18]

3.要对一个列表进行顺序排序,请问使用什么方法?

列表名.sort()

4.要对一个列表进行逆序排序,请问使用什么方法?

#方法一:
列表名.sort()
列表名.reverse()
#方法二:
列表名.sort(reverse=True)

5.copy() 和 clear()

#copy() 方法跟使用切片拷贝是一样的:
list1 = [1, [1, 2, '小甲鱼'], 3, 5, 8, 13, 18]
list2 = list1.copy()
list3 = list1.copy()
print(list2)

#clear() 方法用于清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。

list3.clear()
print(list3)
输出结果:
[1, [1, 2, '小甲鱼'], 3, 5, 8, 13, 18]
[]

6.列表推导式或列表解析
表达式:
[ i*i for i in range(10) ]

print( [ i*i for i in range(10) ])
输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推导式(List comprehensions)也叫列表解析,是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:[有关A的表达式 for A in B]
例如

list1 = [x**2 for x in range(10)]
print(list1)
输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
``

相当于
```python
list1 = []
for x in range(10):
    list1.append(x**2)

print(list1)
输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

7.先在 IDLE 中获得下边列表的结果,并按照上方例子把列表推导式还原出来。

list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
for i in range(len(list1)):
    print(list1[i],list1[i+1])
输出结果:
    print(list1[i],list1[i+1])
IndexError: list index out of range
(0, 1) (0, 3)
(0, 3) (0, 5)
(0, 5) (0, 7)
(0, 7) (0, 9)
(0, 9) (2, 1)
(2, 1) (2, 3)
(2, 3) (2, 5)
(2, 5) (2, 7)
(2, 7) (2, 9)
(2, 9) (4, 1)
(4, 1) (4, 3)
(4, 3) (4, 5)
(4, 5) (4, 7)
(4, 7) (4, 9)
(4, 9) (6, 1)
(6, 1) (6, 3)
(6, 3) (6, 5)
(6, 5) (6, 7)
(6, 7) (6, 9)
(6, 9) (8, 1)
(8, 1) (8, 3)
(8, 3) (8, 5)
(8, 5) (8, 7)
(8, 7) (8, 9)

待修缮的代码:
(分行输出)

list1 = []
for x in range(10):
    for y in range(10):
        if (x%2==0 and y%2!=0):
            list1.extend([(x,y)])
print(list1)

参考代码:

list1 = []
for x in range(10):
    for y in range(10):
        if x%2 == 0:
            if y%2 != 0:
                list1.append((x, y))
print(list1)

8.使用列表推导式补充被涂掉的部分
在这里插入图片描述
参考代码:
有错误

list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.impossible is nothing']
List2=['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
for each in list3:
    print(each)

自己的代码:
待完善(排序)

list1=['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.impossible is nothing']
List2=['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
list3 = [(x[:]+y[2:] )for x in List2 for y in list1
        if y[0]==x[0]


         ]
for each in list3:
    print(each)
输出结果:
4.阿迪达斯impossible is nothing
2.李宁一切皆有可能
3.工作室让编程改变世界
1.耐克Just do it

9.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
列表推导式,list=[有关x的表达式 for x in B]

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值