gpt4 book ai didi

Python 循环并创建单独的列表

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:14 25 4
gpt4 key购买 nike

我的主要问题是如何迭代 for/while 循环来更改起始元素的位置。我有一个包含六个元素的小列表

x= [34,37,38,36,38,43]

我想创建一个距离矩阵,以便它第一次迭代 x 时计算距 34 的距离并将这些值存储为列表。然后下一次从 37 开始计算距离(现在不包括 34,因此每个连续列表都会比前一个短一个)。

我已经开始使用代码来初始化一些东西

x= [34,37,38,36,38,43]
x_list = []
i=1
k=i-1

接下来,我运行代码

for i in range (i,len(x)):
z = abs(x[i] - x[k])
x_list.append(z)

然后我运行打印语句来打印我想要的列表

print(x_list) #which returns correct output [3, 4, 2, 4, 9] for the first list

我现在希望 i 的值增加到 2,以便 k=1,当我迭代距离时,它应该在单独的列表中返回 [1, 1, 1, 6],但我不确定如何执行此操作,因为我已经退出循环并且我不想每次都对 i 进行硬编码

最佳答案

我相信您正在寻找的是循环中的循环(嵌套 for 循环)。

x = [34,37,38,36,38,43]

for j in range (1, len(x)): # j from 1 to length-1
k = j - 1 # we set the new k in the first outer loop
x_list = [] # we reset x_list each time
for i in range (j, len(x)): # i from j to len-1
z = abs(x[i] - x[k]) # get the distances
x_list.append(z)
print(x_list) # print out the distances for each outer loop iteration

输出:

[3, 4, 2, 4, 9]

[1, 1, 1, 6]

[2, 0, 5]

[2, 7]

[5]

如果您想要一个稍微复杂的代码,并且还可以保存每次迭代的结果(通过使用 2D 列表数组),请使用以下代码:

x = [34,37,38,36,38,43]

x_list = [[0] * 0 for i in range(len(x) - 1)] # generator makes us a 2D array

for j in range (1, len(x)):
k = j - 1
for i in range (j, len(x)):
z = abs(x[i] - x[k])
x_list[j - 1].append(z) # notice we use the array to get the right list

for iteration in x_list: # loop through the x_list outer array
print(iteration) # print out the distances for list

输出:

(同上)

关于Python 循环并创建单独的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com