我在 python 中有以下列表
lista_x = [2,3,4,5]
lista_y = [6,7,8,9]
我尝试将当前元素(不包括末端)复制到下一个位置。所以你会得到类似的东西:
lista_x = [2,3,3,4,4,5]
lista_y = [6,7,7,8,8,9]
我有这段代码,但我无法实现我的目标
for i in range(len(lista_x)):
if(i != 0 and i!=len(lista_x)): #Exluyendo extremos
lista_x.insert(i,lista_x[i]) #Agrega el valor actual
lista_y.insert(i,lista_y[i])
这个问题看起来像是一个练习,旨在为所提出的问题获得巧妙的解决方案。
一般来说,当你必须处理一个列表时,你首先应该知道的是对列表进行操作的不同方法和函数,看看它们中的任何一个是否对你有用。最强大的功能之一是zip,您可以使用它来混合列表。稍微了解一下,您可以看到,如果您自己做一个
zip
列表,您可以想出非常接近您需要的东西:结果:
缺少的是连接所有这些元组,您将得到解决方案。要连接,您可以创建一个添加每个元组的循环,但还有另一种更直接的方法使用该函数
sum
:初始元素是空元
()
组,我们通过它获得的元组被连接(添加)zip
以获得一个元组。由于我们被要求提供一个列表,我们必须将元组转换为一个列表。把所有东西放在它的位置,解决方案是:
为简单起见,创建一个从第二个位置到最后一个位置遍历列表的函数。这是通过将列表括在大括号中来完成的
[1:-1]
。此语法表示列表从第二个位置复制到末尾,不包括最后一项。请记住,在 Python 中,索引从 开始
0
,因此第二个位置是1
。他
-1
将是最后一个位置使用方法
append
使用方法
insert
使用
sum
迭代生成的过元组非常感谢,你的方法对我有用。但我还在英文堆栈溢出中发现了一个解决它的函数。万一哪天有人用这个,我就把它留在这里。
为什么不使用 numpy 库中的重复函数