Lấy từng giá trị từ file text thả vào mảng 2 chiều

Mình có 1 file txt, lưu theo cú pháp:
1 2 4 4
3 2 1 0
2 4 2 1
1 2 4 2
bây giờ muốn lấy giá trị từ file text này lưu từng giá trị từ trên xuống, từ trái qua như sau
list[0][0]=1, list[0][1]=2, list[0][3]=4,…

Và nữa là lấy số dòng của file text đó?
Mình cảm ơn các bác.

Ý của bạn là nhờ code dùm? Nếu là như vậy thì không hay đâu :smiley:

Mình có các bước, bạn tham khảo:

  1. Đọc file.
  2. Cắt ra thành từng dòng, lưu vào list.
  3. Lặp theo từng dòng, cắt chuỗi theo khoảng trắng, chuyển chữ thành số và lưu vào list.

Xong!

Đếm số dòng file text: Bạn xem file text được định dạng theo kiểu nào: Windows \r\n, Unix \n, Mac \r rồi chỉ cần đếm số ký tự, hay đơn giản hơn: len(open('foo.txt').readlines())

1 Like

Okie bạn, để làm. Mình chỉ hỏi xin cách làm thôi

Mình ngu thuật toán lắm nên cứ làm kiểu thủ công thôi. Bạn tham khảo

lst = []
with open('text.txt') as f:
    for line in f:
        line = line.rstrip() # bỏ đi char \n
        line = line.split() # tách nó ra từng số
        line = list(map(int, line)) # int() từng số
        lst.append(line) # rồi cho nó vào

Ví dụ ở trên thì ở vòng lặp đầu tiên thì

line = '1 2 4 4\n'
sau đó rstrip()
line = '1 2 4 4'
rồi split()
line = ['1', '2', '3', '4']
rồi map() qua int()
line = [1, 2, 3, 4]
add vào lst
[].append([1, 2, 3, 4])
[ [1, 2, 3, 4] ]
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?