2024-09-26 17:51:25 发布
网友
我想要卷轴系统argv从第二个到倒数第二个论点。为什么不起作用?你知道吗
for arg in sys.argv[1: :len(sys.argv)-1] : print arg
sys.argv是一个list,因此您可以应用slicing以仅获取列表的某一部分,例如,如果您只想从元素2迭代到倒数第二个元素。 通常,如果lst是一个列表
sys.argv
list
lst
lst[0]
是列表的第一个元素,并且
lst[-1]
是最后一个。 示例:
>>> x = [1,2,3,4,5,6] >>> x[1:-1] [2, 3, 4, 5]
使用切片,您的for循环应该如下所示
for
for arg in sys.argv[1:-1]: print(arg)
您的代码中有一个错误:不应该放两个冒号,而应该只放一个。其工作原理如下:
为了排除nfirst元素,语法是[n:]。
[n:]
要排除n最后的元素,不需要计算数组中的元素数。而是使用:[:-n]语法。
[:-n]
如果要排除第一个x元素和最后一个y元素,可以将这两个元素组合起来:[x:y]。
[x:y]
在您的示例中,要获取不带第一个和最后一个参数的数组,只需执行以下操作:
sys.argv[1:-1]
像这样:
for arg in sys.argv[1:-1]: print arg
问题是冒号太多,导致extended slice。你知道吗
因为[1::len(sys.argv)-1]中有多余的冒号(您的版本中冒号之间的空格是不必要的,这可能会让您感到困惑),您的意思是:
[1::len(sys.argv)-1]
1
len(sys.argv)-1
显然,如果你从序列的第二个元素开始,然后大步向前len(sequence) - 1,你就到了最后,什么都没有了。你知道吗
len(sequence) - 1
如果你去掉多余的冒号,你的代码就可以工作了。。。你知道吗
for arg in sys.argv[1:len(sys.argv)-1]: print arg
。。。但是Python允许您使用negative indexes从要切片的序列的末尾开始计数,因此您可以用以下内容替换整个内容:
sys.argv
是一个list
,因此您可以应用slicing以仅获取列表的某一部分,例如,如果您只想从元素2迭代到倒数第二个元素。 通常,如果lst
是一个列表是列表的第一个元素,并且
是最后一个。 示例:
使用切片,您的
for
循环应该如下所示您的代码中有一个错误:不应该放两个冒号,而应该只放一个。其工作原理如下:
为了排除nfirst元素,语法是
[n:]
。要排除n最后的元素,不需要计算数组中的元素数。而是使用:
[:-n]
语法。如果要排除第一个x元素和最后一个y元素,可以将这两个元素组合起来:
[x:y]
。在您的示例中,要获取不带第一个和最后一个参数的数组,只需执行以下操作:
像这样:
问题是冒号太多,导致extended slice。你知道吗
因为
[1::len(sys.argv)-1]
中有多余的冒号(您的版本中冒号之间的空格是不必要的,这可能会让您感到困惑),您的意思是:1
中的所有元素。。。你知道吗len(sys.argv)-1
的步幅。你知道吗显然,如果你从序列的第二个元素开始,然后大步向前
len(sequence) - 1
,你就到了最后,什么都没有了。你知道吗如果你去掉多余的冒号,你的代码就可以工作了。。。你知道吗
。。。但是Python允许您使用negative indexes从要切片的序列的末尾开始计数,因此您可以用以下内容替换整个内容:
相关问题 更多 >
编程相关推荐