01/10/2018, 10:51
Cách nhập mảng nguyên có dấu space trong python?
Khi khởi tạo một list nguyên, và dữ liệu nhập vào là một dãy số cách nhau bởi dấu space, python báo lỗi vậy làm cách nào để đưa dữ liệu có chứa dấu space vào list kiểu int trong python?
Bài liên quan
Xoá space trước khi đưa vào là xong, hehe
Tiện thể bạn đưa code luôn lên cho dễ mổ xẻ
tức là dữ liệu vào có dấu space bạn à, yêu cầu của bài toán là thế
Bạn thử nhé
wandbox.org
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
s = ' 1 ' print(s) print(int(s)) print(s.strip())
Bạn tìm hiểu 2 câu lệnh list.split và map trong python nhé
Python split: http://www.pythonforbeginners.com/dictionary/python-split
Python map: https://stackoverflow.com/questions/7368789/convert-all-strings-in-a-list-to-int
Đơn giản lắm . Hãy xem ví dụ của mình!
Tưởng tượng ta có như thế này
Sau đó bạn nhập vào với như sau
Giờ đây
lst
sẽ nhận được chuỗi là'3 5 1 6'
. Để táchspace
ta dùngsplit
vớiargument
mặc định làsplit by space
Và để biến đổi nó thành
int
Và tất cả những dòng trên có thể ngắn gọn lại bằng cách
nguồn https://stackoverflow.com/questions/10145347/convert-string-to-integer-using-map
Cảm ơn bạn đã chỉ dẫn cụ thể
bạn giải thích cụ thể zùm mình dòng này dc không?
`lst = list(map(lambda x: int(x) if x.isdigit() else 0, lst))
Thì nếu
input
nhập vào là3 5 4
bạn sẽ có được mộtlst = ['3', '5', '4']
Còn với cái này, mình sẽ nói từ thứ một
Đầu tiên là cái
lambda x: int(x) if x.isdigit() else 0
. Cái này tương đương vớiKế đến là cái
map
. Ví dụ ta có thế nàyDo đó, với
Nhưng mà hàm
map
sẽ trả về mộtmap object
, vàobject
này bạn không thểgetiitem
nhưlist
giống thế nàyThế nên mình mới convert nó qua
list