Python150题day04

 1.3列表与元组练习题

①列表基础考察

已知一个列表lst = [1,2,3,4,5]
1.求列表的长度
2.判断6 是否在列表中
3.lst + [6,7,8] 的结果是什么?
4.lst*2 的结果是什么
5.列表里元素的最大值是多少
6.列表里元素的最小值是多少
7.列表里所有元素的和是多少
8.在索引1的后面新增一个的元素109.在列表的未尾新增一个元素20

解答:

1. len(lst)

2. 6 in lst

3. [1,2,3,4,5,6,7,8]

4. [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

5. max(lst)

6. min(lst)

7. sum(lst)

8. lst.insert(1, 10)

9. lst.append(20)

②修改列表

lst = [1, [4, 6],True]

请将列表里所有数字修改成原来的两倍

答案:

lst[0] = 2

lst[1][0] = 4

lst[1][1] = 12

你以为存在一个函数,其功能便是将列表里所有的数据都变成原来的两倍,这样才显得变成语言是一个非常神奇的东西,但是很遗憾的告诉你,那些神奇的东西都是程序员自己实现的。


想要修改列表里的数据,必须通过索引对其重新赋值,上面的方法很low,你也可以写一个区数来实现这个功能,我们假设要处理的列表里只int,float,bool,和list数据,不管嵌套基层list.这个函数都应该能正确处理,下面是一段示例代码

def double_list(lst):

        for index,item in enumerate(lst):
                if isinstance(item,bool):

                        continue

                if isinstance(item,(int,float)):

                        lst[index]*=2

                if isinstance(item,list):

                        double_list(item)

if _name_ == '_main_':

        lst = [1,[4,6],True]

        double_list(lst)

        print(lst)

③元组概念考察

写出下面代码的执行结果和最终结果的类型

1. (1,2)*2

2. (1,)*2

3. (1)*2

解答:

1. (1, 2, 1, 2)

2. (1, 1)

3. 2

注意第2和第3个,当元组里只有一个数据时,必须有逗号,否则就变成了第三题的形式:1*2

当元组中只有一个数据时,如果不省略了逗号,那么小括号的作用就不再是表示元组,而是表示运算优先级

④合并列表

lst = [1,2,3]

lst2 = [4,5,6]

不使用+号运算符,将lst2合并到lst的末尾,并思考,这个过程中,是否产生了新的列表

解答:

lst.extend(lst2)

这个过程中不会产生新的列表,最直观的检验方式就是print(id(lst)),合并前后,lst的内存地址都没有发生变化,只是列表里的内容发生了变化

你可能感兴趣的:(Python150题,python,开发语言)