Python - 乘以 table 创建

Python - Multiply table creating

在不导入任何模块的情况下,这段代码是否可以更短一些?

def multiply_by2(li):
    new_list = []
    for i in li:
        new_list.append(i*1)
        new_list.append(i*2)
        new_list.append(i*3)
        new_list.append(i*4)
        new_list.append(i*5)
        new_list.append(i*6)
        new_list.append(i*7)
        new_list.append(i*8)
        new_list.append(i*9)
        new_list.append(i*10)
    return new_list

print(multiply_by2([5]))

我不确定您创建的函数是否根据其名称实现了预期目的,但这是使它更紧凑的简单修复。如果您只是想将列表中的所有内容乘以二,您可以对所有 li[i] 和 *= 2 执行类似的循环。希望这能回答您的问题,但如果没有,请添加更多详细信息。

def multiply_by2(li):
    new_list = []
    for i in li:
        for j in range(1,11):
            new_list.append(i*j)
    return new_list

你可以这样做:

def multiply_by2(li, length=10):
    new_list = []
    for i in li: for j in range(1,length + 1): new_list.append(i * j)
    return new_list

print(multiply_by2([5]))

但是我们可以做得更好,你可以看到甚至还有一个one-liner:

def multiply_by2(li, length=10): return [i * j for i in li for j in range(1,length + 1)]

print(multiply_by2([5]))

这是一种方法

def multiply_by2(li,range_needed):
    new_list = []
    for i in range(1,range_needed+1):
      new_list.append(li*i)
    return new_list

print(multiply_by2(5,10))

我给你做了一个代码。

def multiply_by2(li):
    new_list = [(j+1)*i for i in li for j in range(10)]
    return new_list
def multiply_by2(li,range_needed):
    return [li*i for i in range(1,range_needed+1)]