python:求列表元素的积,以及求列表形式输出字典的键与值。

问题一:
输入一个由n(n>1)个数字组成的列表 ls,并根据该列表输出一个新列表lt,其中lt中第i个元素等于ls中除ls[i]之外所有元素的乘积。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

注意:输入输出均为列表。例如:输入[1,2,3,4],输出[24, 12, 8, 6]。
现在只知道如何提取元素,但是应该如何按照要求求积呢?

问题二:输入字典,将字典 中所有值以列表形式输出,字典中所有键以列表形式输出。
例:输入格式 {123:"123", 456:"456", 789:"789"}
输出格式 ['123', '456', '789'] [123, 456, 789]
刚刚学到字典,不太理解如何写,求大佬相助!

d =  {123:"123", 456:"456", 789:"789"}
key = []
value = []
for i in d.items():
    key.append(i[0])
    value.append(i[1])
print(key)
print(value)

d =  {123:"123", 456:"456", 789:"789"}
key = []
value = []
for i in d:
    key.append(i)
    value.append(d[i])
print(key)
print(value)

如果有时间还是去看看字典的文档,这些基础数据类型还是要好好学

# -*- coding: UTF-8 -*-

ls=[1,2,3,4]
x = 1;
for i in ls:
    x = x * i
result=map(lambda x1: x / x1, ls)
print(result)

[24, 12, 8, 6]

问题解决请采纳,采纳后回答第二题