【问题标题】:How to change values in nested list python如何更改嵌套列表python中的值
【发布时间】:2015-11-18 01:08:11
【问题描述】:

矩阵表示单元点。如果我们将这些单元格点想象成一个网格,我们需要使矩阵中的值等于第 2 和第 4 象限中的输入 T1 以及第 1 和第 3 象限中的输入 T2 值。如从第 0 行到第 2 行和第 2 列0 到 3 应该是 T1 的值。另外,我需要使它显示为单元格,在所有行/列之间有线条。

#input values needed
A = input("Enter a value for the first heater/cooler temp: ")
B = input("Enter a value for the second heater/cooler temp: ")
T1 = input("Enter a value for the first initial plate temp: ")
T2 = input("Enter a value for the second initial plate temp: ")
#the stabilizing criterion value


matrix = []
for row in range(0,6):
    matrix.append([])
    for column in range(0,9):
        matrix[row].append(column)

for row in matrix:
    print(row)

【问题讨论】:

  • 我不确定你的问题是什么。您可以在嵌套列表中设置一个值,如下所示:matrix[row][column] = T1 用于您需要的特定范围的行和列。
  • 如何使用范围?如果我说 matrix[0][0] = 3 那么我知道第一行的第一项将是 3。我只是不知道如何在循环中执行此操作
  • 现在,您正在循环遍历 rowcolumn 的各种值。您可以检查rowcolumn 的特定值是否在所需范围内,如果是,则将matrix[row][column] 设置为T1T2,以任意一个为准。这有意义吗?
  • 如果矩阵[0][3]中的行:如果矩阵[0][4]中的列:matrix.append(T1)?你是这个意思吗?我的问题是我只是没有很好地掌握索引
  • 所以,matrix[0][3] 指的是存储在矩阵特定位置的值。由于您已将其初始化为获取行和列的值,row in matrix[0][3] 检查row 的值是否在存储在matrix[0][3] 的值中。如果您需要检查某些位置,您可以检查row是否在0到3的范围内:if row in range(3),然后将其设置为您想要的值。

标签: python list input


【解决方案1】:

在此代码中,row in range(0,6) 指的是矩阵中第一行,然后是第二行的所有位置,依此类推。它循环遍历所有行。 所以matrix[0][x] 指的是第 0 行中的所有位置(您可以通过设置 x = 1, 2, ... 来访问每个位置)。

您想要做的是将一组特定行和列的值设置为T1,对吗?

由于您无论如何都要遍历所有行和列,因此您可以随时检查行和列的组合是否在所需范围内:

if row < 3 and column < 4:
    matrix[row][column] = T1

它的作用是,每当行号和列号的组合落在行 = 0 到 2 和列 = 0 到 3 的范围内时,它会将矩阵中这些位置的值设置为 T1 .

这能回答你的问题吗?

现在关于打印部分,你可以试试这样的功能:

def printy(P):
    for i in range(len(P[0])):
        print '---',
    print

    for i in range(len(P)):
        for j in range(len(P[0])):
            print P[i][j], '|',
        print
        for i in range(len(P[0])):
            print '---',
        print

【讨论】:

  • 你说的对我来说是有道理的,但我把它插了进去,矩阵没有任何变化。它需要在 for 循环中吗?
  • 是的,它需要在 for 循环中。或者,在按照代码中的方式对其进行初始化后,可以运行另一个 for 循环来遍历行和列的所有值,然后包含此条件。
  • 好的,谢谢!我让它工作。现在我只需要把它变成行和列,但那是另一项任务
  • 是的,我不明白你问题的那一部分。你的意思是它的打印方式?
  • 是的,我可以像 print("-"*20) 那样在行之间画线,但我不知道如何在列之间画垂直线,但实际上你不知道如果你不想的话,必须整天待在帮助我理解这一点
猜你喜欢
  • 2015-05-03
  • 2021-06-17
  • 2021-09-14
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多