Làm cách nào để chia một chuỗi thành một danh sách các ký tự?
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
2 không hoạt động."foobar" → ['f', 'o', 'o', 'b', 'a', 'r']
Mateen Ulhaq
22.5K16 Huy hiệu vàng86 Huy hiệu bạc127 Huy hiệu đồng16 gold badges86 silver badges127 bronze badges
hỏi ngày 12 tháng 2 năm 2011 lúc 15:14Feb 12, 2011 at 15:14
3
Sử dụng hàm tạo
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3:>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3 xây dựng một danh sách mới bằng cách sử dụng các mục thu được bằng cách lặp qua đầu vào. Một chuỗi là một điều đáng tin cậy - lặp lại nó mang lại một ký tự duy nhất ở mỗi bước lặp.
Mateen Ulhaq
22.5K16 Huy hiệu vàng86 Huy hiệu bạc127 Huy hiệu đồng16 gold badges86 silver badges127 bronze badges
hỏi ngày 12 tháng 2 năm 2011 lúc 15:14Feb 12, 2011 at 15:16
user225312user225312user225312
Sử dụng hàm tạo
3:66 gold badges167 silver badges181 bronze badges>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3 xây dựng một danh sách mới bằng cách sử dụng các mục thu được bằng cách lặp qua đầu vào. Một chuỗi là một điều đáng tin cậy - lặp lại nó mang lại một ký tự duy nhất ở mỗi bước lặp.s = "mystring"
l = list[s]
print l
hỏi ngày 12 tháng 2 năm 2011 lúc 15:14Feb 12, 2011 at 15:16
Sử dụng hàm tạo
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3:Senthil Kumaran
3 xây dựng một danh sách mới bằng cách sử dụng các mục thu được bằng cách lặp qua đầu vào. Một chuỗi là một điều đáng tin cậy - lặp lại nó mang lại một ký tự duy nhất ở mỗi bước lặp.14 gold badges90 silver
badges128 bronze badges>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
Đã trả lời ngày 12 tháng 2 năm 2011 lúc 15:16
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
122K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu ĐồngMar 24, 2015 at 6:00
3
Bạn lấy chuỗi và chuyển nó vào danh sách []
uhello = u'Hello\u0020World'
SENTHIL KUMANSENTENTHIL KUMARAN
print[[x for x in uhello]]
Output:
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
52.7K14 Huy hiệu vàng90 Huy hiệu bạc128 Huy hiệu đồng
print[list[map[lambda c2: c2, uhello]]]
Output:
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
Bạn cũng có thể làm điều đó theo cách rất đơn giản này mà không cần danh sách []:
print[list[uhello]]
Đã trả lời ngày 24 tháng 3 năm 2015 lúc 6:00
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
Nếu bạn muốn xử lý chuỗi của mình một ký tự tại một thời điểm. Bạn có nhiều lựa chọn khác nhau.
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
1Đã trả lời ngày 24 tháng 3 năm 2015 lúc 6:00
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
2
Nếu bạn muốn xử lý chuỗi của mình một ký tự tại một thời điểm. Bạn có nhiều lựa chọn khác nhau.
Sử dụng danh sách hiểu:5 silver badges12 bronze badges
Sử dụng bản đồ:Jun 3, 2017 at 14:48
Gọi chức năng danh sách tích hợp:Sid
Đầu ra:5 silver badges5 bronze badges
1
Sử dụng cho vòng lặp:
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3DTASEV
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
44915 Huy hiệu bạc12 Huy hiệu đồngDec 13, 2018 at 21:31
0
Đã trả lời ngày 3 tháng 6 năm 2017 lúc 14:48
Sidsid
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
56795 Huy hiệu bạc5 Huy hiệu Đồng
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
6Nếu bạn chỉ cần một mảng ký tự:
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
7Nếu bạn muốn chia STR bằng một dấu phân cách cụ thể:
Đã trả lời ngày 13 tháng 12 năm 2018 lúc 21:31Sep 10, 2014 at 19:07
2
Tôi đã khám phá hai cách khác để hoàn thành nhiệm vụ này. Nó có thể hữu ích cho ai đó.
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
8Cái đầu tiên rất dễ dàng:
>>> list["foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
9Và hàm thứ hai sử dụng hàm
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
5 và >>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
6. Nó có thể phù hợp cho các nhiệm vụ phức tạp hơn:Ví dụ
s = "mystring"
l = list[s]
print l
0Xem tài liệu Python để biết thêm phương pháp
Đã trả lời ngày 10 tháng 9 năm 2014 lúc 19:07
s = "mystring"
l = list[s]
print l
1Nhiệm vụ tập trung vào việc lặp lại các ký tự của chuỗi và thu thập chúng vào một danh sách. Giải pháp ngây thơ nhất sẽ giống như
Tất nhiên, nó có thể được rút ngắn thành chỉ
Nhưng vẫn còn những giải pháp ngắn hơn làm điều tương tự.Apr 5, 2016 at 17:24
Trình cấu trúc
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3 có thể được sử dụng để chuyển đổi bất kỳ điều gì có thể lặp lại [trình lặp, danh sách, bộ dữ liệu, chuỗi, v.v.] thành danh sách.vaultahĐiểm cộng lớn là nó hoạt động giống nhau trong cả Python 2 và Python 3.12 gold badges111 silver badges139 bronze badges
1
Ngoài ra, bắt đầu từ Python 3.5 [nhờ PEP 448 tuyệt vời] Bây giờ có thể xây dựng một danh sách từ bất kỳ điều gì có thể thay đổi bằng cách giải nén nó vào một danh sách trống theo nghĩa đen:
Suppose,
s = "mystring"
l = list[s]
print l
2
Đây là gọn gàng hơn, và trong một số trường hợp hiệu quả hơn so với gọi trực tiếp cho hàm tạo
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
3.Tôi khuyên bạn không nên sử dụng các phương pháp dựa trên ____ 35, vì
5 không trả lại danh sách trong Python 3. Xem cách sử dụng bộ lọc, bản đồ và giảm trong Python 3.5 gold badges34 silver badges45 bronze badges>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
Đã trả lời ngày 5 tháng 4 năm 2016 lúc 17:24Aug 18, 2018 at 6:53
Vaultahvaultah
42.1K12 Huy hiệu vàng111 Huy hiệu bạc139 Huy hiệu đồnguhello = u'Hello\u0020World'
1 Chức năng sẵn có sẽ chỉ tách giá trị trên cơ sở một số điều kiện nhất định nhưng trong một từ duy nhất, nó không thể đáp ứng điều kiện. Vì vậy, nó có thể được giải quyết với sự trợ giúp của uhello = u'Hello\u0020World'
2. Nó trong nội bộ gọi mảng và nó sẽ lưu trữ giá trị trên cơ sở một mảng.Nov 26, 2019 at 12:47
Tuomastikenbermudas
4.2715 Huy hiệu vàng34 Huy hiệu bạc45 Huy hiệu Đồng3 gold badges18 silver badges41 bronze badges
Đã trả lời ngày 18 tháng 8 năm 2018 lúc 6:53
s = "mystring"
l = list[s]
print l
4Giải nén chúng:
s = "mystring"
l = list[s]
print l
5s = "mystring"
l = list[s]
print l
3Đã trả lời ngày 26 tháng 11 năm 2019 lúc 12:47Dec 17, 2020 at 6:53
Gary02127Gary02127Gary02127
Enbermudasenbermudas1 gold badge23 silver badges28 bronze badges
1.5213 huy hiệu vàng18 Huy hiệu bạc41 Huy hiệu đồng
uhello = u'Hello\u0020World'
3, cách dễ nhất là chuyển nó sang uhello = u'Hello\u0020World'
2. Vì thế,
Bạn cũng có thể sử dụng khả năng hiểu danh sách, hoạt động nhưng không súc tích như trên:
Có những cách khác, cũng vậy, nhưng những điều này là đủ. Sau đó, nếu bạn muốn kết hợp lại chúng, một cuộc gọi đơn giản đến
5 sẽ trả lại danh sách của bạn cho tất cả vinh quang trước đây của nó như một chuỗi ...7 gold badges62 silver badges69 bronze
badgesuhello = u'Hello\u0020World'
Đã trả lời ngày 17 tháng 12 năm 2020 lúc 6:53Sep 6, 2020 at 19:23
4.7911 Huy hiệu vàng23 Huy hiệu bạc28 Huy hiệu đồng
s = "mystring"
l = list[s]
print l
7Bạn cũng có thể sử dụng phương thức
uhello = u'Hello\u0020World'
6 trong các hoạt động danh sách.s = "mystring"
l = list[s]
print l
8s = "mystring"
l = list[s]
print l
6May 17, 2014 at 14:28
GeorgySylvain
11.1k7 Huy hiệu vàng62 Huy hiệu bạc69 Huy hiệu đồng2 silver badges5 bronze badges
Đã trả lời ngày 6 tháng 9 năm 2020 lúc 19:23
s = "mystring"
l = list[s]
print l
9Nếu bạn muốn chỉ đọc quyền truy cập vào chuỗi, bạn có thể sử dụng ký hiệu mảng trực tiếp.Feb 9, 2015 at 4:07
2
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
0Có thể hữu ích cho việc thử nghiệm mà không cần sử dụng regexp. Chuỗi có chứa một dòng kết thúc không?
Đã trả lời ngày 17 tháng 5 năm 2014 lúc 14:28Jul 16, 2018 at 10:19
Sylvainsylvainminggli
3092 Huy hiệu bạc5 Huy hiệu Đồng1 silver badge5 bronze badges
1
>>> [c for c in "foobar"]
['f', 'o', 'o', 'b', 'a', 'r']
1Vâng, giống như tôi thích phiên bản danh sách, đây là một cách khác nhau mà tôi tìm thấy [nhưng thật tuyệt nên tôi nghĩ rằng tôi sẽ thêm nó vào cuộc cạnh tranh]:
Đã trả lời ngày 9 tháng 2 năm 2015 lúc 4:07Sep 5 at 16:45