Python 练习题讲解 4 · 列表
一、选择题
1. 列表(List)是一个有序可变的数据类型,没有固定大小,即元素的顺序不一样,列表就不是同一个列表,可以对列表中的元素做增、删、改操作
2. 列表(List)中的元素可以是任意数据类型
3. 列表(List)的中元素的索引号从左到右为 0 ~ n-1,从右到左为 -1 ~ -n
4. 列表(List)中 append() 函数一次只能传入一个元素,传多个会抛出 TypeError 错误,如果想一次传入多个元素,可以用 extend() 函数将需要添加的元素存储在一个列表后,接入原列表末尾

改法1:
demo_list = []
demo_list.append("A")
demo_list.append("B")
print(demo_list)
改法2:
demo_list = []
demo_list.extend(["A", "B"])
print(demo_list)
运行结果:![]()
5. reverse() 函数:原地将列表元素倒置,即索引号为 0 的元素变到 n-1 位,索引号为 1 的元素变到 n-2 位,且是在原列表内改变顺序,顺序改变后不会产生一个新列表
6. pop() 函数:用于按照索引号删除列表中的元素,如果不填索引号则默认删除最后一个元素
7. sort() 函数:用于按照标准规律将列表中的元素排序。标准规律在数值数据类型上(int、float、double 等)上是按照i数值大小从小到大,在字符串数据类型上(str)则是以 ASCII 码从小到大,但如果列表内既有数值型,又有字符串型的数据,排序会报错。默认参数 reverse = False(升序:从小到大),如果将参数 reverse = True,则会按照降序排序(从大到小)
8. 以下代码的输出结果是?
list = [1, 2, 1, 3]
nums = set(list)
for i in nums:
print(i, end="")
运行结果:![]()
set():括号中包裹列表,可以将列表强制转换为集合,而集合数据类型中,元素是不可以重复的,且集合是无序的数据类型,遍历集合中的元素时,会按照元素的哈希值取模后的大小先后遍历
9. random() 函数:随机产生 [0.0, 1.0] 内的浮点数,不会打乱原列表中元素的顺序
10. shuffle() 函数:将列表作为参数传入,并将列表中的元素随机打乱
11. choice() 函数:随机选择序列中的某个元素并返回
12. seed() 函数:设置随机数生成的种子,用来控制随机序列的复现,不会打乱原列表
13. 以下代码的运行结果是什么?
counter = 1
for i in (1, 2, 3):
counter += 1
print(counter)
运行结果:
解析:i in (1, 2, 3),for 循环遍历三次,起始的 counter = 1,在循环里遍历三次(+1 三次)之后则变为 4
14. 以下代码的运行结果是?
b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print (b3)
运行结果:[2, 3]
解析:b3 = [val for val in b1 if val in b2] 为列表生成式,表示 val 如果存在于 b1,又存在于 b2,那么它就能够成为 b3 中的元素
二、编程题
1. 求列表中全部元素的和
向列表 [1,2,1,2,3,4,5] 中添加数字,并计算新列表中全部元素的和。
list_1 = [1,2,1,2,3,4,5]
list_1.append(int(input("请输入需要添加的数字:")))
print(sum(list_1))
运行结果:

2. 使用牛顿法求解一元二次方程
牛顿迭代公式:
不断迭代直到 的值无限趋近于 0。
# 获取输入
ini_root = int(input())
f_expr = input()
f1_expr = input()
# 牛顿迭代
x = ini_root
while True:
# 计算函数值
f_val = eval(f_expr, {"x": x})
# 计算导数值
f1_val = eval(f1_expr, {"x": x})
# 当函数值足够接近0时停止迭代
if abs(f_val) < 1e-6:
break
# 牛顿迭代更新x
x = x - f_val / f1_val
# 保留1位小数输出
print("{0:.1f}".format(f_val))
3. 计算数组
获取一个整数数组,然后对该数组中的每个元素都加上一个任意数字,从而得到一个新数组。
nums = input("请输入一个数组:")
num = int(input("请输入一个数字:"))
nums_ = []
for i in nums:
if i.isdigit():
nums_.append(int(i))
add_num = [x + num for x in nums_]
print(add_num)
运行结果:

解析:isdigit() 用于判定括号内包裹的对象是不是数字
4. 求奇数
获取两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)的奇数。
low,high = map(int,input().split())
size = range(low,high + 1)
lis = []
x = low
for x in size:
if x % 2 != 0:
lis.append(x)
print(lis)
运行结果:
![]()
欢迎大家投稿题目或批评指正,可咨询、讲解
更多推荐

所有评论(0)