83 lines
2.6 KiB
Python
83 lines
2.6 KiB
Python
# 1、反转列表
|
||
# 编写代码将列表 [1, 2, 3, 4, 5] 反转。
|
||
lst = [1, 2, 3, 4, 5]
|
||
reversed_lst = lst[::-1]
|
||
print(reversed_lst) # 输出: [5, 4, 3, 2, 1]
|
||
|
||
# 2、获取子列表
|
||
# 从列表 [10, 20, 30, 40, 50, 60] 中获取索引 2 到 4(包含 4)的元素。
|
||
lst = [10, 20, 30, 40, 50, 60]
|
||
sub_lst = lst[2:5] # 注意:结束索引 5 对应的元素不包含在切片内
|
||
print(sub_lst) # 输出: [30, 40, 50, 60]
|
||
|
||
# 3、隔一个取一个
|
||
# 从字符串 "abcdefghij" 中每隔一个字符取一个,得到 "acegij"。
|
||
s = "abcdefghij"
|
||
result = s[::2]
|
||
print(result) # 输出: "acegik"
|
||
|
||
# 4、删除前三个元素
|
||
# 对列表 [1, 2, 3, 4, 5, 6, 7, 8, 9] 删除前三个元素。
|
||
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||
lst = lst[3:] # 直接赋值新列表
|
||
print(lst) # 输出: [4, 5, 6, 7, 8, 9]
|
||
# 或者使用原地修改
|
||
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||
lst[:3] = []
|
||
print(lst) # 输出: [4, 5, 6, 7, 8, 9]
|
||
|
||
# 5、替换中间元素
|
||
# 将列表 [1, 2, 3, 4, 5] 的中间元素(索引 2)替换为 10。
|
||
lst = [1, 2, 3, 4, 5]
|
||
mid_idx = len(lst) // 2
|
||
lst[mid_idx:mid_idx+1] = [10] # 用 [10] 替换中间元素
|
||
print(lst) # 输出: [1, 2, 10, 4, 5]
|
||
|
||
# 6、检查回文
|
||
# 编写函数 is_palindrome(s),使用切片判断字符串是否为回文(如 "radar" 是回文)。
|
||
def is_palindrome(s):
|
||
return s == s[::-1]
|
||
print(is_palindrome("radar")) # 输出: True
|
||
print(is_palindrome("hello")) # 输出: False
|
||
|
||
# 7、合并切片
|
||
# 合并两个列表的切片:将列表 a = [1, 2, 3] 的前两个元素和列表 b = [4, 5, 6] 的后两个元素合并为 [1, 2, 5, 6]。
|
||
a = [1, 2, 3]
|
||
b = [4, 5, 6]
|
||
merged = a[:2] + b[-2:]
|
||
print(merged) # 输出: [1, 2, 5, 6]
|
||
|
||
# 8、矩阵转置
|
||
# 对二维列表 matrix = [[1, 2], [3, 4], [5, 6]] 使用切片转置为 [[1, 3, 5], [2, 4, 6]]。
|
||
matrix = [[1, 2], [3, 4], [5, 6]]
|
||
transposed = [list(row) for row in zip(*matrix)]
|
||
print(transposed) # 输出: [[1, 3, 5], [2, 4, 6]]
|
||
|
||
# 9、字符串重组
|
||
# 给定字符串 "HelloWorld",通过切片重组为 "WorldHello"。
|
||
s = "HelloWorld"
|
||
idx = s.index("World")
|
||
result = s[idx:] + s[:idx]
|
||
print(result) # 输出: "WorldHello"
|
||
|
||
# 10、列表复制
|
||
# 使用切片创建列表 original = [1, 2, [3, 4]] 的深拷贝(修改拷贝不影响原列表)。
|
||
import copy
|
||
original = [1, 2, [3, 4]]
|
||
shallow_copy = original[:] # 浅拷贝,嵌套列表仍共享引用
|
||
deep_copy = copy.deepcopy(original) # 深拷贝
|
||
# 修改浅拷贝的嵌套列表会影响原列表
|
||
shallow_copy[2][0] = 99
|
||
print(original) # 输出: [1, 2, [99, 4]]
|
||
# 修改深拷贝的嵌套列表不会影响原列表
|
||
deep_copy[2][0] = 100
|
||
print(original) # 输出: [1, 2, [99, 4]]
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|