1.题目:已知列表x=list(range(9)),那么执行语句del x[:2]之后,x的值为( D)
A.[1,3,5,7,9] B.[1,3,5,7] C.[0,1,3,5,7] D.[2,3,4,5,6,7,8]
#解题思路:
1. list(range(9)) 生成 [0,1,2,3,4,5,6,7,8](左闭右开,不包含9)
2. del x[:2] 表示删除列表前2个元素(切片 [:2] 对应索引0和1)
3. 剩余元素从索引2开始,即 [2,3,4,5,6,7,8]
代码
python
x = list(range(9))
del x[:2]
print(f"执行后x的值:{x}")
print(f"第1题答案:D")

2.题目:len(range(1,10))的值是( B)
A.8 B.9 C.10 D.11
# 解题思路:
1. range(1,10) 生成 1~9 的整数序列(左闭右开,包含1不包含10)
2. 序列元素:1,2,3,4,5,6,7,8,9 共9个元素
3. len() 函数返回序列长度
代码
python
result = len(range(1, 10))
print(f"len(range(1,10)) 的结果:{result}")
print(f"第2题答案:B")

3.题目:表达式",".join(list)中list是列表类型,以下选项中对其功能的描述正确的是( D)
A.将逗号字符串增加到列表list中
B.在列表list每个元素后增加一个逗号
C.将列表所有元素连接成一个字符串,每个元素后增加一个逗号
D.将列表所有元素连接成一个字符串,元素之间增加一个逗号 "
# 解题思路:
1. join() 方法的作用:将可迭代对象(如列表)的元素连接成一个字符串
2. 连接符是调用 join() 的字符串(此处为 ",")
3. 示例:["a","b","c"] → "a,b,c"(元素之间加逗号,而非每个元素后加)
代码
python
test_list = ["a", "b", "c"]
join_result = ",".join(test_list)
print(f'["a","b","c"] 执行 ",".join() 后:{join_result}')
print(f"第3题答案:D")

4.题目:表达式[1,2,3]*3的执行结果为( A)
A.[1,2,3,1,2,3,1,2,3] B.{[1,2,3],[1,2,3],[1,2,3]} C.[1,2,3],[1,2,3],[1,2,3] D.([1,1,1,2,2,2,3,3,3])
# 解题思路:
1. 列表 * 整数 n:表示将列表重复 n 次,生成新列表
2. [1,2,3]*3 → 重复3次,拼接为 [1,2,3,1,2,3,1,2,3]
3. 注意:不是元素重复(排除D),结果是列表(排除B、C)
代码
python
list_multiply = [1,2,3] * 3
print(f"[1,2,3]*3 的结果:{list_multiply}")
print(f"第4题答案:A")

5.题目:假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是(B)
A.[5,6,7,9,11] B.[6,7,9,11] C.[5,6,7,9,] D.[7,9,11,13]
# 解题思路:
1. 列表切片规则:aList[start:end] → 从索引start开始,到索引end-1结束(左闭右开)
2. aList[3:7] → 索引3(6)、4(7)、5(9)、6(11)→ 结果 [6,7,9,11]
3. 注意:列表索引从0开始计数
代码
python
aList = [3,4,5,6,7,9,11,13,15,17]
slice_result = aList[3:7]
print(f"aList[3:7] 的结果:{slice_result}")
print(f"第5题答案:B")

6.题目:已知x=list(range(20)),那么表达式x[-1]的值为( D)
A.0 B.1 C.20 D.19 "
# 解题思路:
1. list(range(20)) 生成 0~19 的整数列表(共20个元素)
2. Python 列表支持负索引:x[-1] 表示最后一个元素,x[-2] 表示倒数第二个
3. 最后一个元素是19
代码
python
x = list(range(20))
last_element = x[-1]
print(f"list(range(20)) 的最后一个元素:{last_element}")
print(f"第6题答案:D")

7.题目:切片操作list(range(6))[::2]执行结果为(D)
A.[0,1] B.[0,2,4,6] C.[0,1,2] D.[0,2,4]
# 解题思路:
1. 完整切片语法:[start:end:step] → step为步长(默认1)
2. list(range(6)) → [0,1,2,3,4,5]
3. [::2] → start=0(默认)、end=最后(默认)、step=2 → 取索引0,2,4 → [0,2,4]
代码
python
slice_step = list(range(6))[::2]
print(f"list(range(6))[::2] 的结果:{slice_step}")
print(f"第7题答案:D")

8.题目:已知x=[3,7,5],那么执行语句x=x.sort(reverse=True)之后,x的值为(C)
A.[3,5,7] B.[7,5,3] C.None D.[3,7,5]
# 解题思路:
1. sort() 是列表的原地排序方法(直接修改原列表,不返回新列表)
2. 原地方法的返回值为 None
3. x = x.sort(...) → 将 None 赋值给x,所以x最终为None
代码
python
x = [3,7,5]
x = x.sort(reverse=True) # sort()返回None,x被赋值为None
print(f"执行x=x.sort(reverse=True)后x的值:{x}")
print("补充说明:若要得到排序后的列表,应先排序再使用原列表:")
y = [3,7,5]
y.sort(reverse=True)
print(f"y.sort(reverse=True) 后y的值:{y}")
print(f"第8题答案:C")

9.题目:下面程序输出是什么? txt=["a","b","c","d","e"] stop_words=["d","i"] t=[x for x in txt if x not in stop_words] print(t) D
A.["a","b","c","d","e"] B.["a","b","c","d"] C.["a","b","c"] D.["a","b","c","e"]
# 解题思路:
1. 列表推导式:[x for x in 可迭代对象 if 条件] → 筛选满足条件的元素
2. 条件:x not in stop_words → 元素不在stop_words(["d","i"])中
3. txt中的元素:a(满足)、b(满足)、c(满足)、d(不满足)、e(满足)→ 结果 ["a","b","c","e"]
代码
python
txt = ["a","b","c","d","e"]
stop_words = ["d","i"]
t = [x for x in txt if x not in stop_words]
print(f"程序运行结果:{t}")
print(f"第9题答案:D")

10.题目:下面程序的输出是: ls=["abcd","ab","cd","cdab"] n,m=0,0 for line in ls: if "ab" and "cd" in line: n+=1 m+=1 elif "ab" in line: n+=1 elif "cd" in line: m+=1 print (n,m) A
A:3 3 B:3 4 C:4 3 D:4 4
# 解题思路:
逐个分析列表元素:
1. "abcd" → 包含"ab"和"cd" → n=1, m=1
2. "ab" → 只包含"ab" → n=2, m=1 # 3. "cd" → 只包含"cd" → n=2, m=2 # 4. "cdab" → 包含"ab"和"cd" → n=3, m=3
注意:判断条件 "ab" and "cd" in line → 等价于 ("ab"为True) and ("cd" in line),实际应写 "ab" in line and "cd" in line(本题巧合结果一致)
代码
python
ls = ["abcd","ab","cd","cdab"]
n, m = 0, 0
for line in ls:
if "ab" and "cd" in line: # 建议修正为:"ab" in line and "cd" in line
n += 1
m += 1
elif "ab" in line:
n += 1
elif "cd" in line:
m += 1
print(f"程序运行结果:n={n}, m={m}")
print(f"第10题答案:A")

11.题目:以下程序的输出结果是( ): ls=[11,22,33,44] for i in ls: if i=="33": print("找到!i=",i) break else: print("未找到...") A
A: 未找到... B: 未找到... 未找到... 找到!I=33 C:未找到... 未找到... 未找到... 未找到... D:找到!I=33
# 解题思路:
1. 列表ls中的元素是整数类型(11,22,33,44)
2. 判断条件 i=="33" → 整数和字符串比较,结果为False(类型不同)
3. for-else 结构:循环正常结束(未触发break)时执行else块 # 4. 循环遍历所有元素后未找到匹配项,执行else → 输出"未找到..."
代码
python
ls = [11,22,33,44]
for i in ls:
if i == "33": # 错误:应改为 i == 33(类型匹配)
print("找到!i=", i)
break
else:
print("未找到...")
print("补充说明:若要找到33,需将条件改为 i == 33(整数比较)")
print(f"第11题答案:A")

12.题目:以下程序的输出结果是( ): k=0 for i in range (4): for j in range(i+1): k+=j if j>1: break print(k) C
A:5 B:6 C:7 D:8
# 解题思路:
外层循环 i 取值:0,1,2,3(range(4))
内层循环 j 取值:range(i+1),且 j>1 时break: # 1. i=0 → j=0 → k +=0 → k=0(j不大于1,不break) # 2. i=1 → j=0 → k +=0(k=0);j=1 → k +=1(k=1)→ 内层结束 # 3. i=2 → j=0 → k +=0(k=1);j=1 → k +=1(k=2);j=2 → k +=2(k=4)→ j>1,break # 4. i=3 → j=0 → k +=0(k=4);j=1 → k +=1(k=5);j=2 → k +=2(k=7)→ j>1,break # 最终 k=7
代码
python
k = 0
for i in range(4):
print(f"外层i={i},内层j循环:", end="")
for j in range(i+1):
k += j
print(f"j={j}(k={k})", end=" ")
if j > 1:
break
print()
print(f"程序运行结果:k={k}")
print(f"第12题答案:C")
