Return range() 函数的所有值并将它们添加到数组中
Return all values from range() function and add them into an array
我正在尝试制作一个从 PDF 文件中提取特定 PDF 页面的程序。为此,我有一个数组,其中放置了我要提取的所有页码。但是,为了节省一些时间,我希望能够添加两个页码之间的所有页面(例如 1 到 8 之间)。
目前我有以下代码:
def r(n1, n2):
return range(n1, n2)
if __name__ == '__main__':
pages_to_keep = [1, 2, 10, r(12,14)]
print pages_to_keep
输出为:
[1, 2, 10, [12, 13]]
但我想要的是:
[1, 2, 10, 12, 13, 14]
这里的想法是可以在数组中调用r
函数来轻松添加多个页面,但我想去掉函数返回的括号。有办法吗?
有两种方法:
pages_to_keep = [1, 2, 10]+list(r(12,14))
pages_to_keep = [1, 2, 10]
pages_to_keep.extend(list(r(12,14)))
你应该使用解包运算符 (*)
pages_to_keep = [1,2,10, *list(r(12,14))]
绝对不建议在您的任何项目中这样做 r
= range
。更改 built-in 函数的名称会使代码对其他开发人员来说变得不那么易读,因为这在任何其他项目中都不是默认的。
In other words it is not pythonic and you should not do that, never!
要遵循您的代码并重命名 python 中的函数,只需存储指向您希望的函数的指针,无需为此重新定义函数:
r = range
r(1,2) # [1,2]
在这里你的答案是明码
pages = [1,2]
pages.extend(r(5,8))
print(pages)
# [1, 2, 5, 6, 7]
我正在尝试制作一个从 PDF 文件中提取特定 PDF 页面的程序。为此,我有一个数组,其中放置了我要提取的所有页码。但是,为了节省一些时间,我希望能够添加两个页码之间的所有页面(例如 1 到 8 之间)。
目前我有以下代码:
def r(n1, n2):
return range(n1, n2)
if __name__ == '__main__':
pages_to_keep = [1, 2, 10, r(12,14)]
print pages_to_keep
输出为:
[1, 2, 10, [12, 13]]
但我想要的是:
[1, 2, 10, 12, 13, 14]
这里的想法是可以在数组中调用r
函数来轻松添加多个页面,但我想去掉函数返回的括号。有办法吗?
有两种方法:
pages_to_keep = [1, 2, 10]+list(r(12,14))
pages_to_keep = [1, 2, 10]
pages_to_keep.extend(list(r(12,14)))
你应该使用解包运算符 (*)
pages_to_keep = [1,2,10, *list(r(12,14))]
绝对不建议在您的任何项目中这样做 r
= range
。更改 built-in 函数的名称会使代码对其他开发人员来说变得不那么易读,因为这在任何其他项目中都不是默认的。
In other words it is not pythonic and you should not do that, never!
要遵循您的代码并重命名 python 中的函数,只需存储指向您希望的函数的指针,无需为此重新定义函数:
r = range
r(1,2) # [1,2]
在这里你的答案是明码
pages = [1,2]
pages.extend(r(5,8))
print(pages)
# [1, 2, 5, 6, 7]