Cách chuyển chuỗi thành danh sách trong python

Không cần phải nhập bất cứ thứ gì hoặc đánh giá. Bạn có thể làm điều này trong một dòng cho hầu hết các trường hợp sử dụng cơ bản, bao gồm cả trường hợp được đưa ra trong câu hỏi ban đầu

Lót

l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]

Giải trình

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']

đầu ra

for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvv output vvvvv
'''
 A
B
C
  D
'''
print[type[l_x]] # out: class 'list'
print[len[l_x]] # out: 4

Bạn có thể phân tích cú pháp và dọn sạch danh sách này khi cần bằng cách sử dụng tính năng hiểu danh sách

l_x = [i.strip[] for i in l_x] # list comprehension to clean up
for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvvv output vvvvv
'''
A
B
C
D
'''

Danh sách lồng nhau

Nếu bạn có danh sách lồng nhau, nó sẽ khó chịu hơn một chút. Không sử dụng regex [điều này sẽ đơn giản hóa việc thay thế] và giả sử bạn muốn trả về một danh sách phẳng [và zen của python nói phẳng tốt hơn lồng nhau]

x = '[ "A","B","C" , " D", ["E","F","G"]]'
l_x = x[1:-1].split[',']
l_x = [i
    .replace[']', '']
    .replace['[', '']
    .replace['"', '']
    .strip[] for i in l_x
]
# returns ['A', 'B', 'C', 'D', 'E', 'F', 'G']

Nếu bạn cần giữ lại danh sách lồng nhau, nó sẽ xấu hơn một chút, nhưng vẫn có thể thực hiện được chỉ với biểu thức chính quy và khả năng hiểu danh sách

Cách Pythonic nhất để chuyển đổi danh sách chuỗi thành danh sách số nguyên là sử dụng cách hiểu danh sách

x = '[ "A","B","C" , " D", ["E","F","G"]]'
l_x = x[1:-1].split[',']
l_x = [i
    .replace[']', '']
    .replace['[', '']
    .replace['"', '']
    .strip[] for i in l_x
]
# returns ['A', 'B', 'C', 'D', 'E', 'F', 'G']
7. Nó lặp lại trên tất cả các phần tử trong danh sách và chuyển đổi từng phần tử danh sách
print[type[a[0]]]
# 
0 thành một giá trị số nguyên bằng cách sử dụng hàm tích hợp sẵn
print[type[a[0]]]
# 
1

Bài viết này chỉ cho bạn những cách đơn giản nhất để chuyển đổi danh sách một chiều chỉ bao gồm các chuỗi thành danh sách các số nguyên

Vấn đề. Đưa ra một danh sách các chuỗi

print[type[a[0]]]
# 
2. Làm cách nào để chuyển đổi nó thành danh sách ints
print[type[a[0]]]
# 
3?

  • Biến thể vấn đề. Đưa ra một danh sách các chuỗi có biểu diễn hỗn hợp
    print[type[a[0]]]
    # 
    4. Làm cách nào để chuyển đổi nó thành danh sách ints
    print[type[a[0]]]
    # 
    3?

Trước tiên, chúng ta sẽ đi sâu vào vấn đề cơ bản dễ hơn và kiểm tra biến thể của vấn đề trong Phương pháp 5

Phương pháp 1. Danh sách hiểu

Giả sử chúng ta có một danh sách

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
1

Bây giờ, hãy kiểm tra loại phần tử danh sách đầu tiên

print[type[a[0]]]
# 

Hãy áp dụng hàm tích hợp sẵn

print[type[a[0]]]
# 
6 và nhận danh sách các số nguyên bằng cách sử dụng khả năng hiểu danh sách

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
4

💡 Hiểu danh sách là một cách nhỏ gọn để tạo danh sách. Công thức đơn giản là

print[type[a[0]]]
# 
7. Biểu hiện. Phải làm gì với từng phần tử danh sách? . Những yếu tố để lựa chọn?

Bạn có thể xem tôi giải thích cách hiểu danh sách trong video này

Giới thiệu đơn giản về hiểu danh sách trong Python


Xem video này trên YouTube

Kiểm tra loại số trong danh sách mới

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
8

Hàm tích hợp

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
40 chuyển đổi một chuỗi thành một số nguyên. Do đó, nó giúp chúng ta tạo một danh sách int mới từ danh sách các chuỗi trong một dòng mã

Phương pháp 2. Chức năng bản đồ

Hàm tích hợp sẵn

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
41 được tối ưu hóa tốt và hiệu quả, khi được gọi, các phần tử của danh sách sẽ được truy xuất khi truy cập. Do đó, một phần tử được lưu trữ và xử lý trong bộ nhớ, điều này cho phép chương trình không lưu trữ toàn bộ danh sách các phần tử trong bộ nhớ hệ thống

Áp dụng cho cùng một danh sách

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
42 mã sau đây

for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvv output vvvvv
'''
 A
B
C
  D
'''
print[type[l_x]] # out: class 'list'
print[len[l_x]] # out: 4
2

💡 Hàm

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
43 áp dụng đối số đầu tiên, một hàm, cho từng phần tử trong một lần lặp. Nó biến đổi từng phần tử trong iterable ban đầu thành một phần tử mới và trả về một đối tượng
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
44 iterable mới của các giá trị được chuyển đổi. Để có được một danh sách, bạn cần chuyển đổi nó bằng cách sử dụng hàm tạo
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
45 tích hợp

Bạn có thể xem video giải thích của tôi về chức năng bản đồ tại đây

Làm chủ chức năng bản đồ Python [+Video]


Xem video này trên YouTube

Phương pháp 3. cho vòng lặp

Tất nhiên, bạn cũng có thể chuyển đổi danh sách chuỗi thành danh sách số nguyên bằng cách sử dụng vòng lặp for đơn giản. Đây là điều mà hầu hết mọi người đến từ một ngôn ngữ lập trình như Java và C++ sẽ làm vì họ chưa biết cách Pythonic nhất để sử dụng khả năng hiểu danh sách [xem Phương pháp 1]

for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvv output vvvvv
'''
 A
B
C
  D
'''
print[type[l_x]] # out: class 'list'
print[len[l_x]] # out: 4
6

Phương pháp cơ bản này để chuyển đổi danh sách chuỗi thành danh sách số nguyên sử dụng ba bước

  • Tạo một danh sách trống với
    x = '[ "A","B","C" , " D"]'
    # String indexing to eliminate the brackets.
    # Replace, as split will otherwise retain the quotes in the returned list
    # Split to convert to a list
    l_x = x[1:-1].replace['"',""].split[',']
    
    46
  • Lặp lại từng phần tử chuỗi bằng cách sử dụng vòng lặp
    x = '[ "A","B","C" , " D"]'
    # String indexing to eliminate the brackets.
    # Replace, as split will otherwise retain the quotes in the returned list
    # Split to convert to a list
    l_x = x[1:-1].replace['"',""].split[',']
    
    47, chẳng hạn như
    x = '[ "A","B","C" , " D"]'
    # String indexing to eliminate the brackets.
    # Replace, as split will otherwise retain the quotes in the returned list
    # Split to convert to a list
    l_x = x[1:-1].replace['"',""].split[',']
    
    48
  • Chuyển đổi chuỗi thành số nguyên bằng cách sử dụng
    x = '[ "A","B","C" , " D"]'
    # String indexing to eliminate the brackets.
    # Replace, as split will otherwise retain the quotes in the returned list
    # Split to convert to a list
    l_x = x[1:-1].replace['"',""].split[',']
    
    49 và nối chuỗi đó vào danh sách số nguyên mới bằng phương thức
    x = '[ "A","B","C" , " D"]'
    # String indexing to eliminate the brackets.
    # Replace, as split will otherwise retain the quotes in the returned list
    # Split to convert to a list
    l_x = x[1:-1].replace['"',""].split[',']
    
    80

Phương pháp 4. Danh sách hiểu + eval[]

Bạn cũng có thể sử dụng hàm

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
81 trong phần hiểu danh sách để chuyển đổi danh sách chuỗi thành danh sách số nguyên

l_x = [i.strip[] for i in l_x] # list comprehension to clean up
for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvvv output vvvvv
'''
A
B
C
D
'''
3

💡 Hàm

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
82 tích hợp của Python phân tích đối số chuỗi
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
83 thành một biểu thức Python, chạy nó và trả về kết quả của biểu thức. Nếu “biểu thức” là một biểu diễn số nguyên đơn giản, Python sẽ chuyển đổi đối số
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
83 thành một số nguyên

Bạn có thể xem tôi giới thiệu chi tiết về hàm

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
81 trong hướng dẫn ngắn này

Python eval[] – Cách đánh giá động một biểu thức mã trong Python


Xem video này trên YouTube

Phương pháp 5. Biểu diễn chuỗi hỗn hợp với làm tròn

💬 Vấn đề biến thể. Đưa ra một danh sách các chuỗi có biểu diễn hỗn hợp

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
86. Làm cách nào để chuyển đổi nó thành danh sách ints
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
87?

Thách thức là trước tiên chuyển đổi từng chuỗi thành số float và chỉ sau đó chuyển đổi nó thành số nguyên

Hai bước này là không thể thiếu và không thể bỏ qua bước nào vì bạn cần số float để có thể biểu thị bất kỳ số nào

Nhưng bạn cũng cần số nguyên, vì đây là mục tiêu bạn đặt ra để thực hiện. chuyển đổi danh sách chuỗi thành danh sách int

❗ Chuyển đổi danh sách các biểu diễn chuỗi hỗn hợp thành danh sách các số nguyên được làm tròn bằng cách xâu chuỗi các hàm có sẵn

x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
88 và
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
89 trong biểu thức hiểu danh sách
for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvv output vvvvv
'''
 A
B
C
  D
'''
print[type[l_x]] # out: class 'list'
print[len[l_x]] # out: 4
20, giả sử rằng danh sách biểu diễn chuỗi hỗn hợp được lưu trữ trong biến
x = '[ "A","B","C" , " D"]'
# String indexing to eliminate the brackets.
# Replace, as split will otherwise retain the quotes in the returned list
# Split to convert to a list
l_x = x[1:-1].replace['"',""].split[',']
42

x = '[ "A","B","C" , " D", ["E","F","G"]]'
l_x = x[1:-1].split[',']
l_x = [i
    .replace[']', '']
    .replace['[', '']
    .replace['"', '']
    .strip[] for i in l_x
]
# returns ['A', 'B', 'C', 'D', 'E', 'F', 'G']
4

Bạn có thể tìm hiểu mọi thứ về hàm

for i in range[0, len[l_x]]:
    print[l_x[i]]
# vvvv output vvvvv
'''
 A
B
C
  D
'''
print[type[l_x]] # out: class 'list'
print[len[l_x]] # out: 4
22 trong video sau

Python round[] — Hướng dẫn tương tác hữu ích


Xem video này trên YouTube

Để nâng cao kỹ năng Python của bạn một cách dễ dàng, vui lòng tham gia học viện email miễn phí của tôi với nhiều nội dung miễn phí và cheat sheet—nếu bạn chưa tham gia. 🙂

Nếu bạn muốn học toàn diện về Python trong khi vẫn được trả tiền trong quá trình này, hãy tham khảo khóa học dành cho người làm việc tự do về Python của tôi—chương trình đào tạo dành cho nhà phát triển tự do số một trên thế giới

lập trình viên

x = '[ "A","B","C" , " D", ["E","F","G"]]'
l_x = x[1:-1].split[',']
l_x = [i
    .replace[']', '']
    .replace['[', '']
    .replace['"', '']
    .strip[] for i in l_x
]
# returns ['A', 'B', 'C', 'D', 'E', 'F', 'G']
6

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Chủ Đề