问题描述
可以在不导入任何模块的情况下以某种方式缩短此代码吗?
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]))
解决方法
我不确定您创建的函数是否根据其名称实现了预期的功能,但这是使其更紧凑的简便解决方案。如果您只想将列表中的所有内容都乘以2,则可以对所有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]))
但是我们可以做得更好,您可以看到甚至还有一个内衬:
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
,
function downloadTxt(ele) {
const name = ele.attr('data-name');
$.ajax({
url: urls[name],method:'GET',success: function(response,textStatus,request) {
$('#customLoader').remove();
const filename = request.getResponseHeader('Content-Disposition').split("filename=")[1]
const uri = 'data:text/txt;charset=utf-8,' + response;
const downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = filename;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
});
}