You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按顺序将数字的每一位与列表中的元素相乘?

解决对应位置数字与列表元素相乘的问题

你遇到的问题核心是用了嵌套循环——外层循环遍历输入数字的每一位,内层循环又遍历整个列表,导致每个数字会和列表里的所有元素都相乘一遍,自然得不到“对应位置元素相乘”的结果。

这里有两种简单易懂的解决方案,都能得到你想要的输出:

方法1:使用zip()函数配对对应元素

zip()函数可以把两个可迭代对象的对应元素一一配对,正好匹配我们“每一位数字和列表对应位置元素相乘”的需求:

frequentNum = input("please enter 4 digit frequent number: ")
arr = [4, 8, 5, 7]
# 将输入字符串的每个字符转为整数,再和arr的元素一一配对
for digit, num in zip(map(int, frequentNum), arr):
    print(digit * num)

方法2:通过索引遍历对应位置

如果习惯用索引操作,也可以直接遍历列表的索引,取出输入数字对应位置的字符转成整数后相乘:

frequentNum = input("please enter 4 digit frequent number: ")
arr = [4, 8, 5, 7]
# 遍历0到3的索引(因为arr长度是4)
for i in range(len(arr)):
    # 取出输入的第i位转成整数,和arr的第i个元素相乘
    digit = int(frequentNum[i])
    print(digit * arr[i])

验证输出

当你输入1234时,两种方法都会输出:

4
16
15
28

完全符合你的预期结果。

内容的提问来源于stack exchange,提问作者I_love_vegetables

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:30:36