Một cuộc gọi đơn giản đến
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
7 sẽ làm:fruits = eval["['apple', 'orange', 'banana']"]
fruits
> ['apple', 'orange', 'banana']
Hoặc như được giải thích trong bài viết này, điều tương tự có thể được thực hiện một cách an toàn hơn một chút [có nghĩa là: không có nguy cơ tác dụng phụ ngoài ý muốn hoặc tiêm mã độc hại] như thế này:
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
Giải pháp này có lợi thế không phụ thuộc vào các mô -đun bổ sung.
Cải thiện bài viết
Lưu bài viết
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận Using
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
8 and fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
9Nhiề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
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
8 và fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
9initial 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']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']9
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']1
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
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']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]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
Method #2: Using
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']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']9
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
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
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
8 và fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
9initial 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']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']9
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']1
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
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']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]0
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]1
Method #3: Using
>>> things.join[" "]
Traceback [most recent call last]:
File "", line 1, in
AttributeError: 'list' object has no attribute 'join'
1initial 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']9
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]5
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
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
8 và fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
9initial 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']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']9
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']1
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
Output:
initial string [1, 2, 3, 4, 5] final list [1, 2, 3, 4, 5]
Đăng nhập vào tài khoản Python Barsels của bạn để lưu cài đặt screencast của bạn.
Vẫn chưa có tài khoản? Đăng ký tại đây.
Hãy nói về cách bạn có thể chuyển đổi danh sách thành một chuỗi trong Python.how you can convert a list into a string in Python.
Chuyển đổi danh sách thành một chuỗi với >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
6
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
Giả sử chúng tôi có một danh sách các chuỗi gọi là
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
7:>>> things = ["apples", "ducks", "lemons", "cats", "potatoes"]
Nếu chúng tôi muốn biến danh sách này thành một chuỗi duy nhất, chúng tôi có thể chuyển nó cho chức năng
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
6 tích hợp:single string, we could pass it to the built-in >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
6 function:>>> str[things]
"['apples', 'ducks', 'lemons', 'cats', 'potatoes']"
Nhưng đầu ra chúng ta nhận được có lẽ không phải là những gì chúng ta đang tìm kiếm. Ít nhất là nếu chúng ta đang cố gắng chuyển điều này cho người dùng cuối chứ không phải là một lập trình viên khác.
Vì vậy, chúng ta cần phải tự hỏi mình, chúng ta thực sự đang cố gắng làm gì ở đây? Về cơ bản, những gì tôi muốn làm là kết hợp với nhau từng chuỗi trong danh sách này bằng một loại phân cách nào đó [ví dụ như một không gian].join together each of the strings in this list by some kind of delimiter [like a space for example].
Tham gia một danh sách các chuỗi với nhau
Nhiều ngôn ngữ lập trình có phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 mà bạn có thể gọi trên loại danh sách hoặc loại mảng, chuyển nó một dấu phân cách để kết hợp tất cả các chuỗi trong danh sách đó bằng một dấu phân cách nhất định. Python không có điều này!Python doesn't have
this!>>> things.join[" "]
Traceback [most recent call last]:
File "", line 1, in
AttributeError: 'list' object has no attribute 'join'
Trong Python, loại danh sách của chúng tôi không có phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9. Thay vào đó, loại chuỗi của chúng tôi có phương thức >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9:our string type has a >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 method:>>> " ".join[things]
'apples ducks lemons cats potatoes'
Ở đây, chúng tôi đã yêu cầu ký tự không gian [
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
02] vui lòng sử dụng chính nó như một dấu phân cách, kết hợp các mục trong danh sách các chuỗi chúng tôi đã truyền cho nó.use itself as a delimiter, joining together the items in the list of strings we've passed to it.Kết hợp một danh sách các chuỗi với một dấu phân cách tùy ý
Chúng ta có thể sử dụng bất kỳ chuỗi nào như một dấu phân cách. Ví dụ: sử dụng
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
03 làm dấu phân cách sẽ đặt dấu phẩy và một khoảng trống giữa mỗi chuỗi sau:any string as a delimiter. For example, using fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
03 as a delimiter would put a comma and a space between each of these strings:>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
Hoặc một chuỗi trống [
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
04] sẽ không đặt gì giữa mỗi người trong số họ, kết hợp tất cả chúng [smoosing chúng lại với nhau thành một từ dài]:fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
0Phương pháp >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 của Python sẽ chấp nhận bất kỳ chuỗi nào
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
Tại sao Python làm theo cách này? Tại sao phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 trên chuỗi thay vì danh sách? Điều này có vẻ như ngược lại, phải không?Python làm điều đó theo cách này vì lợi ích của sự linh hoạt.flexibility.
Trong Python, chúng ta có rất nhiều loại lặp [không chỉ danh sách] và chúng ta có xu hướng suy nghĩ về việc gõ vịt [nếu nó trông giống như một con vịt và những con vịt như một con vịt, đó là một con vịt]. Đó là, chúng tôi quan tâm đến hành vi [ví dụ: khả năng lặp lại] của một đối tượng thay vì loại của nó [ví dụ: danh sách].behavior [e.g. iterability] of an object instead of its type [e.g. list].
Bởi vì phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 nằm trên loại chuỗi, chúng ta có thể chuyển qua bất kỳ chuỗi nào có thể đi được. Ví dụ: chúng ta có thể kết hợp với nhau một bộ chuỗi:any iterable of strings to it. For example we can join together a tuple of strings:fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
1Hoặc chúng ta có thể kết hợp với nhau một đối tượng tệp [đối tượng tệp có thể sử dụng được trong Python và khi bạn lặp qua chúng, bạn sẽ nhận được các dòng]:file object [file objects are iterable in Python and when you loop over them you get lines]:
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
2Chúng ta cũng có thể kết hợp với nhau một đối tượng máy phát:generator object:
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
3Biểu thức trình tạo đó loại bỏ các dòng mới từ cuối mỗi dòng trong một tệp và chúng tôi đang sử dụng phương thức chuỗi
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 để tham gia các dòng đó cùng với dấu phẩy và không gian.Chuyển đổi một điều không thể đi được của một chuỗi thành một chuỗi
Điều gì sẽ xảy ra nếu có thể tham gia cùng nhau không phải là một chuỗi không? Điều gì sẽ xảy ra nếu đó là một số lượng của các con số?an iterable of numbers?
Khi chúng ta cố gắng kết hợp với nhau, một số vật phẩm không có chuỗi, chúng ta sẽ nhận được
fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
09:fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
4Bởi vì chúng tôi biết rằng phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 chấp nhận bất kỳ chuỗi nào có thể lặp lại, chúng tôi có thể viết một biểu thức máy phát chuyển đổi từng mục của chúng tôi thành một chuỗi bằng cách chuyển nó sang hàm >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
6 tích hợp:converts each of our items into a string by passing it to the built-in >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
6 function:fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
5Vì vậy, ngay cả khi bạn đang làm việc với một người không có dây, bạn có thể cùng nhau tham gia cùng nhau miễn là bạn thực hiện một chút trước khi xử lý trước.
Phương thức chuỗi >>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 có thể chuyển đổi danh sách thành chuỗi trong Python
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
Cần chuyển đổi danh sách thành một chuỗi trong Python?
Chỉ cần tạo một chuỗi cho dấu phân cách của bạn và sau đó gọi phương thức
>>> ", ".join[things]
'apples, ducks, lemons, cats, potatoes'
9 trên nó:fruits = eval["['apple', 'orange', 'banana']", {'__builtins__':None}, {}]
6Điều này hoạt động trên bất kỳ dải khác, không chỉ danh sách các chuỗi.