小甲鱼零基础入门学习Python-012

--------------Class notes------------------

1.当列表包含多个元素的时候,默认是从第一个元素开始比较,只要第一个PK赢了,就算整个列表赢了。

2.字符串比较的是第一个字符对应的ASCII码值的大小。

3.sort 的默认值是sort(reverse = False),表示不颠倒排序。

--------------homework------------------

0.注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案。

>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)

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

answer:[1,2,3,4,5]

e.g.:

>>> B = [2, 2, 3, 3, 4, 4, 5, 5]
>>> A = B
>>> A
[2, 2, 3, 3, 4, 4, 5, 5]
>>> C = B[:]
>>> C
[2, 2, 3, 3, 4, 4, 5, 5]
>>> B.sort(reverse = True)
>>> B
[5, 5, 4, 4, 3, 3, 2, 2]
>>> A
[5, 5, 4, 4, 3, 3, 2, 2]
>>> C
[2, 2, 3, 3, 4, 4, 5, 5]

扫描二维码关注公众号,回复: 2561592 查看本文章

>>> B = [2, 2, 3, 3, 4, 4, 5, 5]
>>> A = B
>>> A
[2, 2, 3, 3, 4, 4, 5, 5]
>>> C = B[:]
>>> C
[2, 2, 3, 3, 4, 4, 5, 5]
>>> B = [6]
>>> B
[6]
>>> A
[2, 2, 3, 3, 4, 4, 5, 5]
>>> C
[2, 2, 3, 3, 4, 4, 5, 5]

第一个A指向了B的内存地址;第二个B重新开辟了一个内存地址

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

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

answer:list1[1][2][0] = '小鱿鱼'

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

answer:使用内置函数sort()

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

answer:sort(reverse = True)

4.列表还有两个内置方法没给大家介绍,不过聪明的你应该可以自己摸索使用的门道吧:copy() 和 clear()

answer:

copy()方法跟使用切片拷贝方法是一样的:

>>> list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
>>> list2 = list1.copy()
>>> list2
[1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

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

>>> list2.clear()
>>> list2
[]

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

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

result:

>>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
>>> list1
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]

CODE:

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]]

7.请写下本节课学到的内容:

   列表推导式:list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]

猜你喜欢

转载自blog.csdn.net/weixin_41790863/article/details/81276072