这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Whatis::(doublecolon)inPython?我阅读了问题Whatis::(doublecolon)inPythonwhensubscriptingsequences?,但这不能回答myarray[x::y]的意思。 最佳答案 它打印列表/数组中的每个yth元素>>>a=[1,2,3,4,5,6,7,8,9]>>>a[::3][1,4,7]a[x::y]的附加语法意味着获取从位置x开始的每个yth元素即。>>>a[2::3][3,6,9]
这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Whatis::(doublecolon)inPython?我阅读了问题Whatis::(doublecolon)inPythonwhensubscriptingsequences?,但这不能回答myarray[x::y]的意思。 最佳答案 它打印列表/数组中的每个yth元素>>>a=[1,2,3,4,5,6,7,8,9]>>>a[::3][1,4,7]a[x::y]的附加语法意味着获取从位置x开始的每个yth元素即。>>>a[2::3][3,6,9]
如果我有一个list:to_modify=[5,4,3,2,1,0]然后声明另外两个列表:indexes=[0,1,3,5]replacements=[0,0,0,0]如何将to_modify的元素作为indexes的索引,然后将to_modify中的对应元素设置为replacements,即运行后,indexes应该是[0,0,3,0,1,0]。显然,我可以通过for循环做到这一点:forindinto_modify:indexes[to_modify[ind]]=replacements[ind]但是还有其他方法可以做到这一点吗?我可以以某种方式使用operator.itemget
如果我有一个list:to_modify=[5,4,3,2,1,0]然后声明另外两个列表:indexes=[0,1,3,5]replacements=[0,0,0,0]如何将to_modify的元素作为indexes的索引,然后将to_modify中的对应元素设置为replacements,即运行后,indexes应该是[0,0,3,0,1,0]。显然,我可以通过for循环做到这一点:forindinto_modify:indexes[to_modify[ind]]=replacements[ind]但是还有其他方法可以做到这一点吗?我可以以某种方式使用operator.itemget
我正在寻找一种有效的方法来实现这一点,我认为这是一种类似切片的操作:>>>mylist=range(100)>>>magicslicer(mylist,10,20)[0,1,2,3,4,5,6,7,8,9,30,31,32,33,34,35,36,37,38,39,60,61,62,63......,97,98,99]想法是:切片获取10个元素,然后跳过20个元素,然后获取下一个10,然后跳过下一个20,依此类推。如果可能的话,我认为我不应该使用循环,因为使用slice的原因(我猜)是为了在单个操作中有效地进行“提取”。感谢阅读。 最佳答案
我正在寻找一种有效的方法来实现这一点,我认为这是一种类似切片的操作:>>>mylist=range(100)>>>magicslicer(mylist,10,20)[0,1,2,3,4,5,6,7,8,9,30,31,32,33,34,35,36,37,38,39,60,61,62,63......,97,98,99]想法是:切片获取10个元素,然后跳过20个元素,然后获取下一个10,然后跳过下一个20,依此类推。如果可能的话,我认为我不应该使用循环,因为使用slice的原因(我猜)是为了在单个操作中有效地进行“提取”。感谢阅读。 最佳答案
假设我有一个这样的Python列表:letters=['a','b','c','d','e','f','g','h','i','j']我想在每个第n个元素之后插入一个“x”,比如说该列表中的三个字符。结果应该是:letters=['a','b','c','x','d','e','f','x','g','h','i','x','j']我知道我可以通过循环和插入来做到这一点。我真正在寻找的是一种Python方式,也许是单线? 最佳答案 我有两个一体式衬垫。给定:>>>letters=['a','b','c','d','e','f','g
假设我有一个这样的Python列表:letters=['a','b','c','d','e','f','g','h','i','j']我想在每个第n个元素之后插入一个“x”,比如说该列表中的三个字符。结果应该是:letters=['a','b','c','x','d','e','f','x','g','h','i','x','j']我知道我可以通过循环和插入来做到这一点。我真正在寻找的是一种Python方式,也许是单线? 最佳答案 我有两个一体式衬垫。给定:>>>letters=['a','b','c','d','e','f','g
这些内置的Python数据类型:list、sequence和slice之间有什么区别?在我看来,这三个本质上都代表了C++和Java所称的array。 最佳答案 你在你的问题中混合了非常不同的东西,所以我会回答一个不同的问题您现在询问的是Python中最重要的接口(interface)之一:iterable-它基本上是您可以使用的任何东西,例如foreleminiterable。iterable有三个后代:sequence、generator和mapping。sequence是随机访问的可迭代对象。您可以要求序列中的任何项目,而不必
这些内置的Python数据类型:list、sequence和slice之间有什么区别?在我看来,这三个本质上都代表了C++和Java所称的array。 最佳答案 你在你的问题中混合了非常不同的东西,所以我会回答一个不同的问题您现在询问的是Python中最重要的接口(interface)之一:iterable-它基本上是您可以使用的任何东西,例如foreleminiterable。iterable有三个后代:sequence、generator和mapping。sequence是随机访问的可迭代对象。您可以要求序列中的任何项目,而不必