我怎么用模算术的一个列表,我想模121后,每个枚举数?

2024-04-25 17:49:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表是枚举的,我希望对每个数字使用模运算,但不是枚举的数字。我该怎么做? 这个问题只考虑表模运算而不是简单的运算。你知道吗

如何一次修改列表中的每个数字(236、242、248)?你知道吗

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

Tags: mod列表数字printlst1表模
2条回答

List comprehensions是对输入iterable中的每个元素执行操作的典型方式,返回一个新的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

相关问题 更多 >