Chuyển list thành string trong Python | Laptrinhcanban.com

Chuyển list thành string trong Python

Hướng dẫn cách chuyển list thành string trong Python. Bạn sẽ học được tất cả cách chuyển list thành string trong Python sau bài học này.

Chúng ta có 3 phương pháp để chuyển list thành string trong Python như sau:

  • Phương thức join() : chuyển list chỉ chứa string thành string trong Python
  • Phương thức str(): chuyển list chứa số thành string trong Python
  • RegEx trong python - hàm re.sub: list 2 chiều (list trong list) thành string trong Python
  • Hàm map(): chuyển list thành string trong Python

Lại nữa, nếu bạn muốn làm ngược lại, hãy xem bài viết: Chuyển string sang list trong Python.

Chuyển list chỉ chứa string thành string trong Python | phương thức join() Python

Đối với các list mà phần tử của nó chỉ thuộc kiểu dữ liệu string, chúng ta có thể đơn giản sử dụng phương thức join() trong Python để nối các phần tử của list đó và chuyển list thành string trong Python.

Ví dụ cụ thể:

mylist = ["a", "b", "c"]
mystring = "".join(mylist)
print(mystring)
#>> abc

Lưu ý là chúng ta chỉ có thể dùng phương pháp này đối với các list mà phần tử trong nó chỉ thuộc kiểu string mà thôi. Nếu tồn tại phần tử có giá trị khác tring, ví dụ như là kiểu số chẳng hạn, lỗi sẽ TypeError sẽ bị trả về.

mylist = ["a", "b", "c", 1]
mystring = "".join(mylist)
print(mystring)

#Traceback (most recent call last):
# File "Main.py", line 2, in <module>
# mystring = "".join(mylist)
#TypeError: sequence item 3: expected str instance, int found

Khi đó chúng ta cần sử dụng tới phương pháp sử dụng phương thức str() mà Kiyoshi sẽ trình bày ở phần sau.

Lại nữa, phương thức join() trong Python không những có thể nối chuỗi là các phần tử trong list, mà còn ở trong các iterable như tuple, set chẳng hạn. Xem thêm: Phương thức join trong Python.

Chuyển list chứa số thành string trong Python | Phương thức str() Python

Như Kiyoshi đã trình bày ở trên, thì chúng ta không thể sử dụng join() để chuyển list chứa số thành string trong Python Trong trường hợp này, chúng ta cần phải sử dụng hàm str() trong Python để chuyển số thành string, trước khi có thể đem nối chúng chúng.

Chúng ta cũng sẽ sử dụng thêm cả cách viết nội hàm của List comprehension để viết code gọn và thông mình hơn như sau:

Ví dụ chúng ta chuyển list thành string trong Python với một list có phần tử thuộc cả kiểu string lẫn kiểu số như sau:

mylist = ["a", "b", "c", 1]
mystring = "".join([str(char) for char in mylist])
print(mystring)
#>> abc1

Tương tự chúng ta cũng có thể chuyển list thành string trong Python với một list có phần tử chỉ thuộc kiểu số như sau:

mylist = [1, 2, 3, 4]
mystring = "".join([str(char) for char in mylist])
print(mystring)
#>> 1234

Lưu ý là với các list 2 chiều chứa phần tử thuộc các kiểu dữ liệu khác như tuple hay list trong list, chúng ta không thể sử dụng trực tiếp phương pháp này được, vì các list và tuple con sẽ bị in luôn ra màn hình như sau.

mylist = [1, ['a', 'b'], 3, 4, (5,6)]
mystring = "".join([str(char) for char in mylist])
print(mystring)
#>> 1['a', 'b']34(5, 6)

Khi đó chúng ta cần phải làm thêm một bước nữa mà Kiyoshi sẽ trình bày ở dưới đây.

Chuyển list 2 chiều (list trong list) thành string trong Python | RegEx trong python - hàm re.sub()

Để chuyển list hai chiều như list trong list hoặc tuple trong listthành string trong Python, chúng ta cũng sử dụng phương thức str() Python, tuy nhiên sau đó chúng ta cần xóa đi các ký tự đặc biệt được sử dụng để tạo list, tuple và chuỗi như cặp dấu [],()'' trong chuỗi kết quả.

Để loại bỏ ký tự đặc biệt trong chuỗi Python , chúng ta sẽ sử dụng tới RegEx trong Python với hàm re.sub() như sau:

import re
mylist = [1, ['a', 'b'], 3, 4, (5,6)]
mystring = "".join([str(char) for char in mylist])
print(mystring)
#>> 1['a', 'b']34(5, 6)

new_string = re.sub(r"[^a-zA-Z0-9]","",mystring)
print(new_string)
#>> 1ab3456

Chuyển list thành string trong Python | Hàm map() Python

Chúng ta cũng có thể sử dụng hàm map() để chuyển list sang trong Python. Hàm map() trong Python sẽ chuyển các phần tử trong list chỉ định sang dạng chuỗi và tạo ra một trình lặp. Sau đó chúng ta cũng sử dụng phương thức join() để lấy ra và nối các chuỗi là phần tử của trình lặp này để tạo ra chuỗi string kết quả.

Chúng ta có thể sử dụng cách này với cả các list có phần tử là string, cũng như các list chứa số trong nó.

Ví dụ chúng ta chuyển list thành string với list có phần tử là string bằng hàm map() như sau:

mylist = ["a", "b", "c"]
mystring = "".join(map(str, mylist))
print(mystring)
#>> 1234

Tương tự, chúng ta cũng có thể chuyển list chứa số trong python thành string bằng hàm map() như sau:

mylist1 = ["a", "b", "c", 1]
mystring1 = "".join(map(str, mylist1))
print(mystring1)
#>> abc1

mylist2 = [1, 2, 3, 4]
mystring2 = "".join(map(str, mylist2))
print(mystring2)
#>> 1234

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách chuyển list thành string trong Python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.