Hướng dẫn how do you change a string to a none in python? - làm thế nào để bạn thay đổi một chuỗi thành không có trong python?

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

Hướng dẫn how do you change a string to a none in python? - làm thế nào để bạn thay đổi một chuỗi thành không có trong python?

Mark Harrisonmark HarrisonMark Harrison

289K121 Huy hiệu vàng324 Huy hiệu bạc456 Huy hiệu Đồng121 gold badges324 silver badges456 bronze badges

5

Có lẽ ngắn nhất sẽ là

def xstr(s):
    return '' if s is None else str(s)
1

Bở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

Hướng dẫn how do you change a string to a none in python? - làm thế nào để bạn thay đổi một chuỗi thành không có trong python?

Dorvakdorvakdorvak

8.7014 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)

Hướng dẫn how do you change a string to a none in python? - làm thế nào để bạn thay đổi một chuỗi thành không có trong python?

Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:21Jun 23, 2009 at 19:21

SilentghostsilentghostSilentGhost

296K64 Huy hiệu vàng302 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges302 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):
    return '' if s is None else str(s)
2 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

Huy hiệu vàng 202K3434 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.5K14 Huy hiệu vàng174 Huy hiệu bạc183 Huy hiệu đồng14 gold badges174 silver badges183 bronze badges

7

def xstr(s):
    return '' if s is None else str(s)
3 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

829K164 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng164 gold badges1205 silver badges1385 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.9K7 Huy hiệu vàng94 Huy hiệu bạc127 Huy hiệu đồng7 gold badges94 silver badges127 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ỉ:

s = (a or '') + (b or '')

Đã 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ờ:

some_string = None
some_string or ''

Nếu một số_String không phải là

def xstr(s):
    return '' if s is None else str(s)
4,
def xstr(s):
    return '' if s is None else str(s)
5 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:

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
0

Đã trả lời ngày 23 tháng 4 năm 2014 lúc 19:56Apr 23, 2014 at 19:56

Radtekradtekradtek

32.5K11 Huy hiệu vàng139 Huy hiệu bạc110 Huy hiệu đồng11 gold badges139 silver badges110 bronze badges

2

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
1

Đã 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

Huy hiệu vàng 202K343 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ó:

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
2

Đã trả lời ngày 23 tháng 6 năm 2009 lúc 22:01Jun 24, 2009 at 3:37

Vinay Sajipvinay SajipPeter Ericson

92.5K14 Huy hiệu vàng174 Huy hiệu bạc183 Huy hiệu đồng1 gold badge12 silver badges4 bronze badges

def xstr(s):
    return '' if s is None else str(s)
3 sẽ hoạt động tốt cho vấn đề đã nêu của bạn!

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
3

Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:08Jul 16, 2018 at 10:26

Alex Martellialex Martellimaciek

829K164 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng2 gold badges25 silver badges32 bronze badges

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
4

Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:56Jun 23, 2009 at 19:25

Krystian Cybulskikrystian Cybulskiphillc

105K11 Huy hiệu vàng66 Huy hiệu bạc97 Huy hiệu Đồng1 gold badge21 silver badges15 bronze badges

1

Cách chức năng (một lớp)

Đã trả lời ngày 23 tháng 6 năm 2009 lúc 19:31

Dariodario

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
6

47.9K7 Huy hiệu vàng94 Huy hiệu bạc127 Huy hiệu đồng

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:May 26, 2015 at 10:27

Hướng dẫn how do you change a string to a none in python? - làm thế nào để bạn thay đổi một chuỗi thành không có trong python?

hoặc thậm chí chỉ:

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
7

Đã trả lời ngày 13 tháng 5 năm 2017 lúc 0:39

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
8

Tôi chủ yếu sử dụng phương pháp này ngay bây giờ:Jun 23, 2009 at 19:37

Nếu một số_String không phải là

def xstr(s):
    return '' if s is None else str(s)
4,
def xstr(s):
    return '' if s is None else str(s)
5 sẽ rút ngắn mạch ở đó và trả về nó, nếu không nó sẽ trả về chuỗi trống.sharjeel

Chức năng tối đa hoạt động trong Python 2.x nhưng không phải trong 3.x:6 gold badges33 silver badges49 bronze badges

3

Đã trả lời ngày 23 tháng 4 năm 2014 lúc 19:56

def xstr(s):
    if s is None:
        return ''
    else:
        return str(s)
9

RadtekradtekSep 26 at 13:21

32.5K11 Huy hiệu vàng139 Huy hiệu bạc110 Huy hiệu đồngJonathan

tobidopetobidope2 silver badges5 bronze badges

5603 Huy hiệu bạc9 Huy hiệu Đồng

def xstr(s):
    return '' if s is None else str(s)
0

Biến thể ở trên nếu bạn cần tương thích với Python 2.4Sep 30, 2019 at 5:27

guagay_wkguagay_wkguagay_wk

Đã trả lời ngày 24 tháng 6 năm 2009 lúc 3:3754 gold badges173 silver badges279 bronze badges

1

Một chuỗi có thể là không có trong Python?

Từ khóa không được sử dụng để xác định giá trị null hoặc không có giá trị nào cả.Không có gì không giống với 0, sai hoặc một chuỗi trống.Không có loại dữ liệu nào của riêng nó (không phải là) và không có ai có thể là không có.only None can be None.

Chuỗi trống có bằng không không?

Một chuỗi trống là một đối tượng chuỗi có giá trị được gán, nhưng độ dài của nó bằng 0.Một chuỗi null không có giá trị nào cả.Một chuỗi trống chỉ chứa khoảng trắng, không trống cũng không phải là null, vì nó có giá trị được gán và không có độ dài 0.. A null string has no value at all. A blank String contains only whitespaces, are is neither empty nor null , since it does have an assigned value, and isn't of 0 length.

Không phải là một đối tượng trong Python?

Vì null trong Python, không có giá trị nào là 0 hoặc bất kỳ giá trị nào khác.Trong Python, không ai là đối tượng và một công dân hạng nhất!None is an object and a first-class citizen!