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

HOME › >>

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 : chuyển list 2 chiều thành string trong Python
  • Sử dụng Hàm map()

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 string thành string trong 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ể:

my_list = ["a", "b", "c"]
separator = ', '
result_string = separator.join(my_list)
print(result_string)
#>> a, b, c

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ề.

my_list = ["a", "b", "c", 1]
separator = ', '
result_string = separator.join(my_list)
print(result_string)

Lỗi trả về:

#Traceback (most recent call last):
# File "<string>", line 3, in <module>
#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.

Chuyển list chứa số thành string trong 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.

Ví dụ cụ thể:

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

Tương tự chúng ta cũng có thể chuyển list số thành string trong Python như sau:

my_list = [1, 2, 3, 4]
separator = ', '
mystring = separator.join([str(char) for char in my_list])
print(mystring)
#>> 1, 2, 3, 4

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.

my_list = [1, ['a', 'b'], 3, 4, (5,6)]
separator = ', '
mystring = separator.join([str(char) for char in my_list])
print(mystring)
#>> 1, ['a', 'b'], 3, 4, (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 thành string

Để chuyển list hai chiều thà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ả.

Chúng ta sẽ sử dụng kết hợp RegEx trong Python với hàm re.sub() để bỏ đi các ký tự đặc biệt trên ra khỏi string kết quả như sau:

import re
my_list = [1, ['a', 'b'], 3, 4, (5,6)]
separator = ''
mystring = separator.join([str(char) for char in my_list])
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 bằng hàm map()

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:

my_list = ["a", "b", "c"]
separator = ', '
mystring = separator.join(map(str, my_list))
print(mystring)
#>> a, b, c

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:

my_list2 = [1, 2, 3, 4]
separator = ', '
mystring2 = separator.join(map(str, my_list2))
print(mystring2)
#>> 1, 2, 3, 4

Chuyển list thành string bằng vòng lặp

Ngoài ra, bạn có thể sử dụng vòng lặp để duyệt qua danh sách và xây dựng chuỗi theo ý muốn. Dưới đây là một ví dụ về cách thực hiện điều này:

my_list = ["apple", "banana", "cherry"]
result_string = ""
for item in my_list:
result_string += item + ", "
result_string = result_string[:-2] # Loại bỏ dấu phân cách cuối cùng
print(result_string)

Kết quả:

apple, banana, cherry

Tuy phương pháp này cũng hoạt động, nhưng phương thức join() vẫn được ưa chuộng hơn vì hiệu suất tốt hơn và mã nguồn ngắn gọn hơn.

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.

URL Link

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/thao-tac-voi-chuoi-string-trong-python/chuyen-list-thanh-string-trong-python/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

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.