我如何在列表上使用模运算,我希望在每个枚举数后修改121



我有一个被枚举的列表,我希望对每个数字使用模运算,但不希望对枚举的数字使用模算术。我该怎么做?这个问题只涉及列表模运算而不是一个简单的运算。

我如何一次修改列表中的每个数字(236、242、248(中的121?

lst1 = [22, 236, 23, 242, 24, 248]
print(mod 121 lst1)

列表理解是对输入迭代中的每个元素执行操作的典型方式,返回一个新的list:

print([x % 121 for x in lst1])

这大致相当于:

newlst = []
for x in lst1:
newlst.append(x % 121)
print(newlst)

但应该运行得更快,而且(对于像这样的简单情况(更容易阅读。

更新:似乎您只想将其应用于list中的所有其他元素,所以在执行理解之前只需将其切片:

print([x % 121 for x in lst1[1::2]])

lst1[1::2]是一个切片,它只使用奇数索引元素(1,3,5,…(生成新的list,因此您只能对[236, 242, 248]进行操作。

这可以通过lambda和map方法来实现:

mod_lamda = lambda x: x % 121
lst1 = list(map(mod_lambda, lst1))

或者这可以通过迭代完成

for i in range(len(lst1)):
lst1[i] = lst1[i] % 121

最新更新