01.整数转换成数组(按位数)
其实这道题是大数,不是考察这个,不过可以用于回忆这个,提供的小测试用例能过
所学到的知识:
1.在数组里插入元素:insert() append()
# 要在数组(在Python中通常称为列表)的最前面插入元素,你可以使用列表的 insert() 方法
def insert_at_beginning(lst, element):
lst.insert(0, element)
2.倒转列表
# 倒转列表
# 方法1:使用 reverse() 方法 原列表会被倒转
def reverse_list_in_place(lst):
lst.reverse()
return lst
# 示例
arr = [1, 2, 3, 4, 5]
reverse_list_in_place(arr)
print(arr) # 输出: [5, 4, 3, 2, 1]
# 方法2:使用切片
def reverse_list_using_slice(lst):
return lst[::-1]
方法3:使用 reversed() 函数 这个方法返回一个倒序的迭代器,通常用于for循环中。
def reverse_list_with_reversed(lst):
return list(reversed(lst))
# 示例
arr = [1, 2, 3, 4, 5]
reversed_arr = reverse_list_with_reversed(arr)
print(reversed_arr) # 输出: [5, 4, 3, 2, 1]
print(arr) # 原始列表不变: [1, 2, 3, 4, 5] !!!
3.sorted()函数和sort()函数的区别
-
返回值:
sorted()
是一个内置函数,它接受一个可迭代对象作为参数,并返回一个新的列表,这个列表是输入的可迭代对象的排序副本。原可迭代对象不会被修改。sort()
是列表(list)的一个方法,它直接在原列表上进行排序,不返回任何值(或者说返回None
)。
-
使用对象:
sorted()
可以用于任何可迭代对象,包括列表、元组、字典、集合等。sort()
是列表对象的一个方法,只能用于列表。
-
可定制性:
- 两者都允许你通过
key
参数来指定一个函数,用于从每个列表元素中提取一个比较键。 - 两者都允许你通过
reverse
参数来指定排序的顺序,reverse=True
表示降序排序。
- 两者都允许你通过
-
内存使用:
sorted()
由于返回一个新的列表,因此会占用更多的内存。sort()
直接在原列表上进行排序,不需要额外的内存来存储副本。
-
语法:
sorted(iterable, key=None, reverse=False)
list.sort(key=None, reverse=False)
-
# 使用 sorted() 函数 my_list = [3, 1, 4, 1, 5, 9, 2] sorted_list = sorted(my_list) # 返回新的排序列表,原列表不变 print(sorted_list) # 输出: [1, 1, 2, 3, 4, 5, 9] print(my_list) # 输出: [3, 1, 4, 1, 5, 9, 2] # 使用 sort() 方法 my_list.sort() # 直接在原列表上进行排序 print(my_list) # 输出: [1, 1, 2, 3, 4, 5, 9]
*** 如何使用sorted函数来实现二维数组排序
lst = [[5,4],[6,4],[6,7],[2,3]]
# 使用sorted函数对列表进行排序,根据子列表的第一个元素排序,如果第一个元素相同,则根据第二个元素排序
sorted_lst = sorted(lst, key=lambda x: (x[0], x[1]))
print(sorted_lst)
02、列表的切片
half=(len(nums)+1)//2 # 奇数的长度
# 奇 偶 反转
nums[::2],nums[1::2]=nums[:half][::-1],nums[half:][::-1]
03、二分查找的边界问题
04、lambda与其他函数的结合使用
Python中lambda 函数详解与运用_key=lamdba x: x[n]-CSDN博客
1、map()函数:便于批量计算
#python3.x
num = [1, 2, 3, 4, 5]
print(list(map(lambda x: x ** 2, num)))
#结果 [1, 4, 9, 16, 25]
num1 = [1, 2, 3, 4, 5]
num2 = [6, 7, 8, 9, 10]
print(list(map(lambda x, y: x + y, num1, num2)))
#结果 [7, 9, 11, 13, 15]
2、