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
This task can be performed using the lambda function. In this we check for string for None or empty string using the or operator and replace the empty string with None.
Đôi khi, trong khi làm việc với học máy, chúng tôi có thể gặp các chuỗi trống và chúng tôi muốn chuyển đổi sang không có tính nhất quán dữ liệu. Điều này và nhiều tiện ích khác có thể yêu cầu giải pháp cho vấn đề này. Hãy để thảo luận về những cách nhất định trong đó vấn đề này có thể được giải quyết.
Phương pháp số 1: Sử dụng tác vụ Lambdathis có thể được thực hiện bằng hàm Lambda. Trong đó, chúng tôi kiểm tra chuỗi cho không có hoặc chuỗi trống bằng toán tử hoặc thay thế chuỗi trống bằng không có.
def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
3def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
4 def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
5def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
6def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
7def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
8def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
9def xstr[s]:
if s is None:
return ''
else:
return str[s]
0def xstr[s]:
if s is None:
return ''
else:
return str[s]
1def xstr[s]:
if s is None:
return ''
else:
return str[s]
2def xstr[s]:
if s is None:
return ''
else:
return str[s]
3 def xstr[s]:
if s is None:
return ''
else:
return str[s]
4 def xstr[s]:
if s is None:
return ''
else:
return str[s]
5def xstr[s]:
if s is None:
return ''
else:
return str[s]
6def xstr[s]:
if s is None:
return ''
else:
return str[s]
7def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
4 def xstr[s]:
if s is None:
return ''
else:
return str[s]
9 def xstr[s]:
return '' if s is None else str[s]
0def xstr[s]:
return '' if s is None else str[s]
1 def xstr[s]:
return '' if s is None else str[s]
2
3def xstr[s]:
return '' if s is None else str[s]
4 def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
5def xstr[s]:
return '' if s is None else str[s]
6 def xstr[s]:
return '' if s is None else str[s]
7def xstr[s]:
return '' if s is None else str[s]
8 def xstr[s]:
return '' if s is None else str[s]
9def xstr[s]:
return '' if s is None else str[s]
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
1def xstr[s]:
if s is None:
return ''
else:
return str[s]
2def xstr[s]:
if s is None:
return ''
else:
return str[s]
2 def xstr[s]:
if s is None:
return ''
return str[s]
4 def xstr[s]:
if s is None:
return ''
else:
return str[s]
5def xstr[s]:
if s is None:
return ''
else:
return str[s]
5def xstr[s]:
if s is None:
return ''
return str[s]
Simply the str function can be used to perform this particular task because, None also evaluates to a “False” value and hence will not be selected and rather a string converted
false which evaluates to empty string is returned.
Đôi khi, trong khi làm việc với học máy, chúng tôi có thể gặp các chuỗi trống và chúng tôi muốn chuyển đổi sang không có tính nhất quán dữ liệu. Điều này và nhiều tiện ích khác có thể yêu cầu giải pháp cho vấn đề này. Hãy để thảo luận về những cách nhất định trong đó vấn đề này có thể được giải quyết.
Phương pháp số 1: Sử dụng tác vụ Lambdathis có thể được thực hiện bằng hàm Lambda. Trong đó, chúng tôi kiểm tra chuỗi cho không có hoặc chuỗi trống bằng toán tử hoặc thay thế chuỗi trống bằng không có.
def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
3def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
4 def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
5def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
6def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
7def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
8def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
9def xstr[s]:
if s is None:
return ''
else:
return str[s]
0def xstr[s]:
if s is None:
return ''
else:
return str[s]
7def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
4 def xstr[s]:
if s is None:
return ''
else:
return str[s]
9 def xstr[s]:
return '' if s is None else str[s]
0def xstr[s]:
return '' if s is None else str[s]
1 def xstr[s]:
return '' if s is None else str[s]
2
3def xstr[s]:
return '' if s is None else str[s]
4 def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
5def xstr[s]:
return '' if s is None else str[s]
6 def xstr[s]:
return '' if s is None else str[s]
7def xstr[s]:
return '' if s is None else str[s]
8 def xstr[s]:
return '' if s is None else str[s]
9def xstr[s]:
return '' if s is None else str[s]
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]
197
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Cách thành ngữ nhất để làm như sau là gì?
def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
CẬP NHẬT: Tôi đang kết hợp đề xuất của Tryptich để sử dụng STR [S], điều này làm cho thói quen này hoạt động cho các loại khác ngoài chuỗi. Tôi rất ấn tượng với gợi ý Lambda của Vinay Sajip, nhưng tôi muốn giữ mã của mình tương đối đơn giản. I'm incorporating Tryptich's suggestion to use str[s], which makes this routine work for other types besides strings. I'm awfully impressed by Vinay Sajip's lambda suggestion, but I want to keep my code relatively simple.
def xstr[s]:
if s is None:
return ''
else:
return str[s]
hỏi ngày 23 tháng 6 năm 2009 lúc 19:17Jun 23, 2009 at 19:17
Mark Harrisonmark HarrisonMark Harrison
289K121 Huy hiệu vàng323 Huy hiệu bạc453 Huy hiệu Đồng121 gold badges323 silver badges453 bronze badges
5
Có lẽ ngắn nhất sẽ là
xstr = lambda s: '' if s is None else s
9Bởi vì không có gì sai và "x hoặc y" trả về y nếu x là sai. Xem các nhà khai thác Boolean để biết giải thích chi tiết. Nó ngắn, nhưng không rõ ràng lắm.
Đã trả lời ngày 31 tháng 8 năm 2012 lúc 12:28Aug 31, 2012 at 12:28
Dorvakdorvakdorvak
8.6714 Huy hiệu vàng33 Huy hiệu bạc42 Huy hiệu đồng4 gold badges33 silver badges42 bronze badges
6
def xstr[s]:
return '' if s is None else str[s]
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:21Jun 23, 2009 at 19:21
SilentghostsilentghostSilentGhost
295K64 Huy hiệu vàng301 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges301 silver badges291 bronze badges
8
Nếu bạn thực sự muốn chức năng của mình hoạt động như
def xstr[s]:
if s is None:
return ''
return str[s]
6 tích hợp, nhưng trả về một chuỗi trống khi đối số không có, hãy làm điều này:def xstr[s]:
if s is None:
return ''
return str[s]
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:28Jun 23, 2009 at 19:28
Ngân hàng Kenan BankskenanKenan Banks
201K34 Huy hiệu vàng151 Huy hiệu bạc171 Huy hiệu đồng34 gold badges151 silver badges171 bronze badges
6
Nếu bạn biết rằng giá trị sẽ luôn là một chuỗi hoặc không có:
xstr = lambda s: s or ""
print xstr["a"] + xstr["b"] # -> 'ab'
print xstr["a"] + xstr[None] # -> 'a'
print xstr[None] + xstr["b"] # -> 'b'
print xstr[None] + xstr[None] # -> ''
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 22:01Jun 23, 2009 at 22:01
Vinay Sajipvinay SajipVinay Sajip
92.2K14 Huy hiệu vàng173 Huy hiệu bạc182 Huy hiệu đồng14 gold badges173 silver badges182 bronze badges
7
s = [lambda v: v or ''][a] + [lambda v: v or ''][b]
1 sẽ hoạt động tốt cho vấn đề đã nêu của bạn!Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:08Jun 24, 2009 at 3:08
Alex Martellialex MartelliAlex Martelli
826K163 Huy hiệu vàng1203 Huy hiệu bạc1382 Huy hiệu Đồng163 gold badges1203 silver badges1382 bronze badges
6
def xstr[s]:
return s or ""
Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:56Jun 24, 2009 at 3:56
Krystian Cybulskikrystian CybulskiKrystian Cybulski
105K11 Huy hiệu vàng66 Huy hiệu bạc97 Huy hiệu Đồng11 gold badges66 silver badges97 bronze badges
2
Cách chức năng [một lớp]
xstr = lambda s: '' if s is None else s
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:31Jun 23, 2009 at 19:31
DariodarioDario
47.8K7 Huy hiệu vàng94 Huy hiệu bạc126 Huy hiệu Đồng7 gold badges94 silver badges126 bronze badges
4
Một lớp lót gọn gàng để thực hiện tòa nhà này trên một số câu trả lời khác:
s = [lambda v: v or ''][a] + [lambda v: v or ''][b]
hoặc thậm chí chỉ:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]0
Đã trả lời ngày 13 tháng 5 năm 2017 lúc 0:39May 13, 2017 at 0:39
4
UPDATE:
Tôi chủ yếu sử dụng phương pháp này ngay bây giờ:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]1
Nếu một số_String không phải là
s = [lambda v: v or ''][a] + [lambda v: v or ''][b]
2, def xstr[s]:
return '' if s is None else str[s]
1 sẽ rút ngắn mạch ở đó và trả về nó, nếu không nó sẽ trả về chuỗi trống.OLD:
Chức năng tối đa hoạt động trong Python 2.x nhưng không phải trong 3.x:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]2
Đã trả lời ngày 23 tháng 4 năm 2014 lúc 19:56Apr 23, 2014 at 19:56
Radtekradtekradtek
32.3k11 Huy hiệu vàng138 Huy hiệu bạc109 Huy hiệu đồng11 gold badges138 silver badges109 bronze badges
2
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]3
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:28Jun 23, 2009 at 19:28
Ngân hàng Kenan Bankskenantobidope
201K34 Huy hiệu vàng151 Huy hiệu bạc171 Huy hiệu đồng3 silver badges9 bronze badges
6
Nếu bạn biết rằng giá trị sẽ luôn là một chuỗi hoặc không có:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]4
Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:37Jun 24, 2009 at 3:37
Peter Ericsonpeter EricsonPeter Ericson
1.8391 Huy hiệu vàng12 Huy hiệu bạc4 Huy hiệu đồng1 gold badge12 silver badges4 bronze badges
Nếu đó là về các chuỗi định dạng, bạn có thể làm như sau:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]5
Đã trả lời ngày 16 tháng 7 năm 2018 lúc 10:26Jul 16, 2018 at 10:26
Maciekmaciekmaciek
3.0412 Huy hiệu vàng25 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges25 silver badges31 bronze badges
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]6
Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:25Jun 23, 2009 at 19:25
Phillcphillcphillc
6,8291 Huy hiệu vàng21 Huy hiệu bạc15 Huy hiệu đồng1 gold badge21 silver badges15 bronze badges
1
Chúng ta luôn có thể tránh đúc loại trong các kịch bản được giải thích dưới đây.
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]7
Trong ví dụ trên trong trường hợp giá trị của khách hàng biến là không có gì, nó tiếp tục đúc trong khi được gán cho 'tên'. Sự so sánh trong mệnh đề 'IF' sẽ luôn thất bại.
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]8
Ví dụ trên sẽ hoạt động đúng. Các kịch bản như vậy là rất phổ biến khi các giá trị được tìm nạp từ URL, JSON hoặc XML hoặc thậm chí các giá trị cần đúc loại tiếp theo cho bất kỳ thao tác nào.
Đã trả lời ngày 26 tháng 5 năm 2015 lúc 10:27May 26, 2015 at 10:27
Sử dụng đánh giá ngắn mạch:
The original list is : ['Geeks', '', 'CS', '', ''] The list after conversion of Empty Strings : ['Geeks', None, 'CS', None, None]9
Vì + không phải là một hoạt động tốt trên chuỗi, nên sử dụng các chuỗi định dạng tốt hơn:
def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
0Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:37Jun 23, 2009 at 19:37
Sharjeelsharjeelsharjeel
5.6556 Huy hiệu vàng33 Huy hiệu bạc49 Huy hiệu đồng6 gold badges33 silver badges49 bronze badges
3
Giống như câu trả lời của Vinay Sajip với các chú thích loại, điều này ngăn cản sự cần thiết phải
def xstr[s]:
if s is None:
return ''
return str[s]
6 kết quả.def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
1Đã trả lời ngày 26 tháng 9 lúc 13:21Sep 26 at 13:21
JonathanjonathanJonathan
1852 Huy hiệu bạc5 Huy hiệu Đồng2 silver badges5 bronze badges
Sử dụng chuỗi F nếu bạn đang sử dụng Python v3.7
def xstr[s]:
if s is None:
return ''
else:
return s
s = xstr[a] + xstr[b]
2Đã trả lời ngày 30 tháng 9 năm 2019 lúc 5:27Sep 30, 2019 at 5:27
guagay_wkguagay_wkguagay_wk
24.7K54 Huy hiệu vàng172 Huy hiệu bạc279 Huy hiệu đồng54 gold badges172 silver badges279 bronze badges
1