# How to Construct a Symmetric Matrix from a Given Upper Triangle in Python?

To construct a symmetric matrix from a given upper triangle in Python, you can use nested loops to populate the lower triangle based on the values in the upper triangle. Here’s an example:

``````def construct_symmetric_matrix(upper_triangle):
n = len(upper_triangle)
symmetric_matrix = [ * n for _ in range(n)]  # Initialize an n x n matrix with zeros

for i in range(n):
for j in range(i, n):
symmetric_matrix[i][j] = upper_triangle[j][i]  # Assign the value from the upper triangle
symmetric_matrix[j][i] = upper_triangle[j][i]  # Assign the same value to the corresponding position in the lower triangle

return symmetric_matrix

# Example usage
upper_triangle = [
[1, 2, 3],
[0, 4, 5],
[0, 0, 6]
]

symmetric_matrix = construct_symmetric_matrix(upper_triangle)
for row in symmetric_matrix:
print(row)``````

In this example, the function `construct_symmetric_matrix()` takes the upper triangle as input and returns the corresponding symmetric matrix.

The function initializes an `n x n` matrix (`symmetric_matrix`) with zeros, where `n` is the number of rows in the upper triangle. It then uses nested loops to iterate over the upper triangle’s elements.

For each element at index `(i, j)` in the upper triangle, it assigns that value to both `symmetric_matrix[i][j]` and `symmetric_matrix[j][i]` to ensure symmetry.

Finally, the code demonstrates an example usage by constructing a symmetric matrix from the given upper triangle and printing each row of the resulting matrix.

The output will be:

``````[1, 2, 3]
[2, 4, 5]
[3, 5, 6]``````

This represents the symmetric matrix where the values in the upper triangle are reflected in the lower triangle.