Làm sao để nhập mảng trên 1 dòng?

Mọi người cho e hỏi làm sao để nhập được mảng như thế này trong python ạ ???
image

Mình đang hiểu là bạn đang cần input 1 ma trận vào 1 mảng, bạn thử cách này xem:

for i in range (0,m):
  matrix[i] = columns

Mã này thực sự làm cho mọi hàng trong ma trận của bạn tham chiếu đến cùng một đối tượng cột. Nếu bất kỳ mục nào trong bất kỳ cột nào thay đổi - mọi cột khác sẽ thay đổi:

>>> for i in range (0,m):
...     matrix[i] = columns
... 
>>> matrix
[[0, 0, 0], [0, 0, 0]]
>>> matrix[1][1] = 2
>>> matrix
[[0, 2, 0], [0, 2, 0]]

Bạn có thể khởi tạo ma trận của mình trong một vòng lặp lồng nhau, như sau:

matrix = []
for i in range(0,m):
    matrix.append([])
    for j in range(0,n):
        matrix[i].append(0)

hoặc, trong một lớp lót bằng cách sử dụng khả năng hiểu danh sách:

matrix = [[0 for j in range(n)] for i in range(m)]

hoặc:

ma trận = [x [:] cho x trong [[0] * n] * m]

Hy vọng mình sẽ giúp được bạn.

2 Likes

Nhìn input thì thấy giống với input mẫu trong link.

Input cơ bản nhất là sys.stdin.readline luôn trả về chuỗi. Đầu tiên tách input ra bằng split rồi chuyển nó thành số. Sau đó áp dụng tuple packing hay list comprehension (bài này dùng tuple).

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?