Tôi có biến danh sách python có chứa chuỗi. Có chức năng python nào có thể chuyển đổi tất cả các chuỗi trong một lần sang chữ thường và ngược lại, chữ hoa?Chuyển đổi danh sách Python bằng chuỗi thành chữ thường hoặc chữ hoa
Trả lời
Có thể thực hiện với tính năng hiểu danh sách. Về cơ bản, chúng có dạng là [function-of-item for item in some-list]
. Ví dụ, để tạo một danh sách mới, nơi tất cả các mục được thấp-cased (hoặc phía trên cased trong đoạn thứ hai), bạn sẽ sử dụng:
>>> [x.lower() for x in ["A","B","C"]]
['a', 'b', 'c']
>>> [x.upper() for x in ["a","b","c"]]
['A', 'B', 'C']
Bạn cũng có thể sử dụng map
chức năng:
>>> map(lambda x:x.lower(),["A","B","C"])
['a', 'b', 'c']
>>> map(lambda x:x.upper(),["a","b","c"])
['A', 'B', 'C']
Chức năng bản đồ hoạt động như mong đợi trong python2, tuy nhiên trong python3 bạn quấn bản đồ vào danh sách cũ: 'list (map (lambda x: x.upper(), [" a "," b "," c "]))' –
Đề xuất thứ hai với ** bản đồ ** là chính xác nhưng lãng phí. Có ** không có điểm trong việc tạo ra hàm lambda **. Chỉ cần sử dụng 'map (str.lower, [" A "," B "," C "])' – fralau
Đọc danh sách là cách tôi làm, đó là cách "Pythonic". Bảng điểm sau đây cho thấy làm thế nào để chuyển đổi một danh sách cho tất cả các trường hợp trên sau đó trở lại thấp hơn:
[email protected]:~$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x = ["one", "two", "three"] ; x
['one', 'two', 'three']
>>> x = [element.upper() for element in x] ; x
['ONE', 'TWO', 'THREE']
>>> x = [element.lower() for element in x] ; x
['one', 'two', 'three']
err, sử dụng 'list' như một tên biến không phải là lựa chọn tốt nhất :) –
Không, nhưng kể từ cái tên ít quan trọng đối với phương pháp được hiển thị, nó không thực sự có liên quan. Tuy nhiên, tôi sẽ thay đổi tên trong trường hợp ai đó muốn sử dụng mã như vậy. – paxdiablo
sự kỳ diệu của stackoverflow: 250 phiếu cho một giải pháp 2-python chỉ sử dụng lambda nơi nó không nên !! cũng 249 bây giờ –
mylist = ['Mixed Case One', 'Mixed Case Two', 'Mixed Three']
print map(lambda x: x.lower(), mylist)
print map(lambda x: x.upper(), mylist)
>>> map(str.lower,["A","B","C"])
['a', 'b', 'c']
rõ ràng là 'str.upper' để chuyển đổi thành chữ hoa –
sẽ không hoạt động tốt trên các chuỗi unicode trong python 2 – mhawke
Bên cạnh đó là dễ dàng hơn để đọc (đối với nhiều người), danh sách comprehensions giành chiến thắng trong cuộc đua tốc độ, quá :
$ python2.6 -m timeit '[x.lower() for x in ["A","B","C"]]'
1000000 loops, best of 3: 1.03 usec per loop
$ python2.6 -m timeit '[x.upper() for x in ["a","b","c"]]'
1000000 loops, best of 3: 1.04 usec per loop
$ python2.6 -m timeit 'map(str.lower,["A","B","C"])'
1000000 loops, best of 3: 1.44 usec per loop
$ python2.6 -m timeit 'map(str.upper,["a","b","c"])'
1000000 loops, best of 3: 1.44 usec per loop
$ python2.6 -m timeit 'map(lambda x:x.lower(),["A","B","C"])'
1000000 loops, best of 3: 1.87 usec per loop
$ python2.6 -m timeit 'map(lambda x:x.upper(),["a","b","c"])'
1000000 loops, best of 3: 1.87 usec per loop
Bạn có biết lý do đằng sau việc hiểu danh sách nhanh hơn bản đồ không? – Nixuz
Nó không phải lúc nào cũng nhanh hơn. Đây là một ví dụ mà nó không phải là: http://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map Nhưng nó không * nhiều * chậm hơn trong trường hợp đó. Sử dụng lambda rõ ràng tạo nên sự khác biệt lớn. Có nhiều ví dụ về lý do tại sao nó nguy hiểm để tin tưởng trực giác của bạn về các vấn đề hiệu suất, đặc biệt là trong Python. –
trong python 3, 'map' thắng cuộc đua, nhưng không có gì :) –
Đối với mẫu này hiểu là nhanh nhất
$ python -m timeit -s 's=["one","two","three"]*1000' '[x.upper for x in s]' 1000 loops, best of 3: 809 usec per loop $ python -m timeit -s 's=["one","two","three"]*1000' 'map(str.upper,s)' 1000 loops, best of 3: 1.12 msec per loop $ python -m timeit -s 's=["one","two","three"]*1000' 'map(lambda x:x.upper(),s)' 1000 loops, best of 3: 1.77 msec per loop
một học sinh hỏi, một học sinh khác có cùng một vấn đề trả lời :))
fruits=['orange', 'grape', 'kiwi', 'apple', 'mango', 'fig', 'lemon']
newList = []
for fruit in fruits:
newList.append(fruit.upper())
print(newlist)
- 1. Làm cách nào để chuyển đổi chuỗi thành chữ hoa hoặc chữ thường với XSLT?
- 2. CMake Regex để chuyển đổi chữ thường thành chữ thường
- 3. Danh sách phân biệt chữ hoa chữ thường
- 4. Tìm kiếm danh sách phân biệt chữ hoa chữ thường
- 5. Chuyển đổi chữ cái thường thành chữ thường trong javascript
- 6. Cách thay đổi chuỗi thành chữ hoa
- 7. mảng php - chữ hoa hoặc chữ thường
- 8. Javascript để chuyển đổi chữ thường sang chữ hoa
- 9. Cột chuỗi phân biệt chữ hoa chữ thường trong SQLAlchemy?
- 10. Khớp mẫu không phân biệt chữ hoa chữ thường trên các danh sách chuỗi
- 11. Làm cách nào để chuyển đổi các chuỗi giữa chữ hoa và chữ thường trong Java?
- 12. Cách chuyển đổi chuỗi thành chữ thường với preg_replace
- 13. Viết hoa chữ hoa đầu tiên và chữ thường viết hoa trong một chuỗi
- 14. Làm cách nào để chuyển đổi chữ hoa thành chữ thường trong Notepad ++
- 15. Android: Chuyển đổi chữ cái đầu tiên của chuỗi thành chữ thường
- 16. phân loại danh sách phân biệt chữ hoa chữ thường, mà không làm giảm kết quả?
- 17. Chọn chuỗi và phân biệt chữ hoa chữ thường
- 18. Chuyển đổi đơn char trong Chuỗi thành chữ thường
- 19. Chuyển đổi các ký tự UTF-8 sang chữ hoa/chữ thường C++
- 20. Thay thế không phân biệt chữ hoa chữ thường
- 21. Làm thế nào để thay thế chữ in hoa thành chữ thường bằng regex trong Eclipse?
- 22. Danh sách bộ lọc Jquery không phân biệt chữ hoa chữ thường
- 23. Đường dẫn XML - không phân biệt chữ hoa chữ thường
- 24. Chuyển đổi chuỗi Unicode/UTF-8 thành chữ thường/chữ thường sử dụng thư viện tinh khiết và chữ thập
- 25. Sắp xếp danh sách các bộ dữ liệu không có phân biệt chữ hoa chữ thường
- 26. Thuộc tính chữ hoa chuyển đổi đầu vào thành chữ hoa
- 27. Chuyển đổi chuỗi thành danh sách bằng Python
- 28. Kết hợp mẫu Lua phân biệt chữ hoa chữ thường
- 29. python 2.7 chữ thường
- 30. Biến chuỗi đầu vào của người dùng thành chữ hoa chữ thường Java
Tại sao "trong một lần"? Bạn có suy nghĩ về khả năng của nó lấy nhiều vé? –
"trong một lượt" có mùi giống như ngôn ngữ bài tập ở nhà –