第012讲:列表:一个打了激素的数组3

在这里插入图片描述

  1. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案。
old = [1, 2, 3, 4, 5]
new = old
old = [6]
print(new)

[1,2,3,4,5]

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

list1 = [1, [1, 2, [‘小甲鱼’]], 3, 5, 8, 13, 18]

list1[1][2][0]="小鱿鱼"
  1. 要对一个列表进行顺序排序,请问使用什么方法?

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

>>> 列表名.sort(reverse=True)
>#或者
>>>> 列表名.sort() ##正序排序
>>> 列表名.reverse()##倒置
  1. 列表还有两个内置方法没给大家介绍,不过聪明的你应该可以自己摸索使用的门道吧:copy() 和 clear()
>>> list2
[1, 2, 3, 0, 2]
>>> list3=list2.copy()
>>> list3
[1, 2, 3, 0, 2]
>>> list3.clear()
>>> list3
[]

5. 你有听说过列表推导式或列表解析吗?

没听过?!没关系,我们现场来学习一下吧,看表达式:


>>> [i*i for i in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

居然分别打印了0到9各个数的平方,然后还放在列表里边了有木有?! 列表推导式(Listcomprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如: [有关A的表达式 for A in B] 例如

>>> list1 = [x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

相当于

list1 = []
for x in range(10):
    list1.append(x**2)

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

>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

答案:

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

6.活学活用:请使用列表推导式补充被小甲鱼不小心涂掉的部分
在这里插入图片描述


>>> list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

首字母配对

列表的一些常用操作符

比较操作符
逻辑操作符not and or
连接操作符+
重复操作符*
成员关系操作符in not in

逻辑操作符:

list1 = [123,456]
list2 = [234,123]
list3 = [123,456]
(list1 < list2) and (list1 == list3)
#结果为True

连接运算符,+号不能添加新的字符串(元素),把多个列表对象合并在一起:

list1 = [123,456]
list2 = [234,123]
list4 = list1 + list2

list2 = list1+'123’错误,+的两端类型需一致,改为 list2 = [list1+‘123’]
为了避免一些问题,一班用append或者extend来连接

重复操作符(*):

list3 = [123,456]
list *= 3

成员关系操作符(in和not in只能判断一个层次的成员关系):

123 in list3
#结果返回True
list5 = [123,["小甲鱼","黑夜"],456]
"小甲鱼" in list5:
 #结果返回False
"小甲鱼" in list5[1]:
 #结果返回True

列表类型的内置函数
list2.count(123)

统计123出现的次数 ,计算它的参数在列表中出现的次数

list2.index(元素,start,end)

list2.index(123,3,7),返回它的参数在列表中位置,start 和 end 为可选参数

list2.reverse()

将整个列表原地翻转,把排最后的放到最前边,排最前的放到最后

list2.sort(func,key,reverse=True/False)默认reverse=False,从小到大

func和key参数为可选参数,用于设置排序的算法和关键字,默认是使用归并排序,它的默认值是sort(reserve=Flase)表示不颠倒顺序,把False改为True,列表就相当于从大到小排序

list2.copy()用于拷贝当前列表,当然也可以用分片的方法进行拷贝

list2=list1.copy
#
list2=list1[:]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值