Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận Using split[]
and
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
Nhiều lần, chúng tôi đi qua dữ liệu bị đổ được tìm thấy ở định dạng chuỗi và chúng tôi yêu cầu nó được biểu diễn thành định dạng danh sách thực tế mà nó thực sự được tìm thấy. Loại vấn đề này của việc chuyển đổi một danh sách được thể hiện trong định dạng chuỗi trở lại danh sách để thực hiện các tác vụ là khá phổ biến trong phát triển web. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện.
Phương pháp số 1: Sử dụng split[]
và
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]3
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]8
Output:
initial string [1, 2, 3, 4, 5] final list ['1', '2', '3', '4', '5']
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
1l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
2Method #2: Using
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
7initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
6Nhiều lần, chúng tôi đi qua dữ liệu bị đổ được tìm thấy ở định dạng chuỗi và chúng tôi yêu cầu nó được biểu diễn thành định dạng danh sách thực tế mà nó thực sự được tìm thấy. Loại vấn đề này của việc chuyển đổi một danh sách được thể hiện trong định dạng chuỗi trở lại danh sách để thực hiện các tác vụ là khá phổ biến trong phát triển web. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện.
Phương pháp số 1: Sử dụng split[]
và
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]3
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]8
Output:
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
1l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
2initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
6Method #3: Using
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
'''
2& nbsp; Phương pháp #2: Sử dụng
l_x = [i.strip[] for i in x[1:-1].replace['"',""].split[',']]
7Nhiều lần, chúng tôi đi qua dữ liệu bị đổ được tìm thấy ở định dạng chuỗi và chúng tôi yêu cầu nó được biểu diễn thành định dạng danh sách thực tế mà nó thực sự được tìm thấy. Loại vấn đề này của việc chuyển đổi một danh sách được thể hiện trong định dạng chuỗi trở lại danh sách để thực hiện các tác vụ là khá phổ biến trong phát triển web. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện.
Phương pháp số 1: Sử dụng split[]
và
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]3
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]2
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]4
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]6
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]7
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]8
Output:
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]
Không cần 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[',']
Outputs:
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 và làm sạch danh sách này khi cần thiết bằng cách sử dụng danh sách hiểu.
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. Nếu không sử dụng regex [sẽ đơn giản hóa việc thay thế] và giả sử bạn muốn trả lại một danh sách dẹt [và Zen of Python nói rằng căn hộ tốt hơn so với 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ẽ trở nên xấu hơn một chút, nhưng nó vẫn có thể được thực hiện chỉ với các biểu thức thông thường và danh sách hiểu:
import re
x = '[ "A","B","C" , " D", "["E","F","G"]","Z", "Y", "["H","I","J"]", "K", "L"]'
# Clean it up so the regular expression is simpler
x = x.replace['"', ''].replace[' ', '']
# Look ahead for the bracketed text that signifies nested list
l_x = re.split[r',[?=\[[A-Za-z0-9\',]+\]]|[?