10. 将list1 的第三个元素修改为两个新元素 13, 14](不是列表中的一个列表,而是将两个新元素插入到指定位置)。

正确答案为:
list1=[1,2,3,4,5,6,7,8]
print(list1)
list1[2:3]=[13,14]
print(list1)
#输出:[1, 2, 13, 14, 4, 5, 6, 7, 8]
我的写法:
list1=[1,2,3,4,5,6,7,8]
print(list1)
list1[2]=[13,14]
print(list1)
#输出:[1, 2, [13, 14], 4, 5, 6, 7, 8]

一个是赋值操作,一个是切片替换

my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]

11. 对列表中的字符串进行排序,并保留数字在原位。

#正确写法
my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
str_list=[x for x in my_list if isinstance(x,str)]


# 冒泡排序
def bubble_str(str_list):
    n=len(str_list)
    for i in range(n):
        swapped = False
        for j in range(0,n-i-1):
            if len(str_list[j]) > len(str_list[j+1]):
                #交换位置
                str_list[j],str_list[j+1]=str_list[j+1],str_list[j]
                swapped=True
        if not swapped:
            break
    return str_list

print(str_list)
bubble_str(str_list)
print(str_list)
print(my_list)

result=[]
str_index=0
for x in my_list:
    if isinstance(x,str):
        result.append(str_list[str_index])
        str_index+=1
    else:
        result.append(x)
print(result)

我的写法:
for x in my_list:
    if isinstance(x,str):
        lis_index=my_list.index(x)
        my_list[lis_index]=str_list[str_index]
        str_index+=1
    else:
        continue
这样有一个问题,
my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
第一次找到str,"apple"被替换为"date"
变为[3, "date", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
这时候出现了两个"date"
继续循环
for x in my_list:  # x="date"
    if isinstance(x,str):  # True
        lis_index=my_list.index(x)  # lis_index=1
他查找到的Index是替换过后的"date"


12. 将my_list中的数字替换为它们对应的字符串形式(如1->'one'),不改变列表中原有的字符串。

正确答案:
num_to_str = {
    0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four',
    5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'
}

for x in my_list:
    if x in num_to_str:
        index=my_list.index(x)
        my_list[index]=num_to_str[x]
    else:continue
print(my_list)

1. 创建一个列表包含从1到100的所有偶数。

#方法一:
even=[]
for i in range(1,101):
    if i%2==0:
        even.append(i)
    else:continue
print(even)
#方法二:
even=list(range(2,101,2)) #range(2, 101)左闭右开
print(even)

10. 用循环遍历列表,把每个数字替换为其对应的字符形式(例如:1替换为'1')。注意使用不同类型的循环来实现。

a=[1,11,2,22,3,33,1,11,11,22]
for x in a:
    result.append(f"{x}")
print(result)
#输出:['1', '11', '2', '22', '3', '33', '1', '11', '11', '22']

15. 使用列表推导式创建一个新列表,包含原列表中每个数字乘以2的结果。

a=[1,11,2,22,3,33,1,11,11,22]
b=[x*2 for x in a]
print(b)

17. 将列表转换为一个字典,其中列表元素作为键,其在列表中的索引作为值。

# 正确答案:
my_list = [1, 2, 'c', 'b']
result = {}
for index,element in enumerate(my_list):
    result[element]=index
print(result)

# 我写的:
dict={}
for x in a :
    index=a.index(x)
    for keys,values in dict:
        keys=x
        values=index
print(dict)

关于字典的知识点

一、index 和 element 到底是谁的?

它们来自 enumerate(my_list)。

1. enumerate() 函数的作用

它会把列表变成一个 “带编号的列表”,生成的每个元素都由两部分组成:
编号(也就是索引,从 0 开始)
原列表中的值
2. 具体例子
对于列表 my_list = ['a', 'b', 'c', 'b'],enumerate(my_list) 会生成以下内容:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'b')
  1. 循环里的赋值
    在循环 for index, element in enumerate(my_list): 中:
    index 会依次拿到每个元素的编号(0、1、2、3)
    element 会依次拿到原列表中的值('a'、'b'、'c'、'b')

二、result[element] = index 是怎么把元素作为键,索引作为值的?

这要从字典的基本操作说起。

  1. 字典的赋值规则
    对于字典 result,result[键] = 值 这种写法的作用是:
    把 键 放到字典里
    给这个 [键] 关联上对应的 值

19. 从列表中随机取出一个元素。

random 模块是 Python 标准库中的一个重要工具,主要用于生成各种随机数或进行随机选择。

random.choice(a)

20. 将列表保存到一个txt文件里,每个元素占一行。

方法一:
# 打开文件,并以 w 模式写入内容
file = open("example.txt", "w")
# 写入内容到文件
for x in a:
    file.write(str(x)+"\n")
# 关闭文件
file.close()
方法二:
# 使用 with 语句,自动关闭文件
with open("example1.txt", "w") as file:
    for x in a:
        file.write(str(x) + "ge"+"\n")

posted on 2025-07-16 23:00  MyLover_Jinsol  阅读(94)  评论(0)    收藏  举报