*grid 会将 grid 中的每个列表作为单独的参数传递给 zip() 函数。这样,zip(*grid) 就会返回一个迭代器,其中每个元素都是一个元组,包含来自 grid 中每个列表的相应位置的元素。这相当于将 grid 矩阵转置(将行变为列,将列变为行)
grid = [[1,2,3], [4,5,6]]
col = zip(*grid)
my_list = [0, 1, 2, 3, 4, 5]
sub_list = my_list[1:4] # 输出: [1, 2, 3]
for index, value in enumerate(["a", "b", "c"]):
print(index, value)
nums = [1, 3, 5, 7]
print(all(n % 2 == 1 for n in nums)) # 输出: True
print(any(n % 2 == 0 for n in nums)) # 输出: False
nums = [1, 2, 3, 4, 5]
# 映射nums每个元素的平方
squares = list(map(lambda x: x**2, nums))
# 取squares中的偶数
odd_squares = list(filter(lambda x: x % 2 == 1, squares))
squares_dict = {x: x**2 for x in range(10)}
my_dict = {"a": 1, "b": 2}
value = my_dict.get("c", "default_value") # 输出: "default_value"
my_dict = {"a": 1, "b": 2}
value = my_dict.setdefault("c", 3) # 输出: 3
print(my_dict) # 输出: {"a": 1, "b": 2, "c": 3}
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2)
print(dict1) # 输出: {"a": 1, "b": 3, "c": 4}
注意,位运算的优先级比较低,使用注意优先级的问题
# 与&
# 或|
# 非~
# 异或^
# 左移<<
# 右移>>
a = int('11010010',2)
n = a.bit_count()
# 输出4,即有4个1
使用异或
a = int('11010010',2)
# 对a的后三位翻转,与即00000111
a ^= int('00000111', 2)
# 输出为11010101
x & 1,如果结果为1,则x为奇数;如果结果为0,则x为偶数。
a = a ^ b; b = a ^ b; a = a ^ b,这样可以在不使用额外变量的情况下交换a和b的值。
x & (x - 1) == 0,如果结果为真,则x是2的幂。