簡體   English   中英

如果附加變量為“ None”,則防止附加到字符串的最有效的計算方法

[英]Most computationally efficient way to prevent appending to string if appending variable is `None`

我正在遍歷JSON樹並將特定值附加到字符串。

有時,JSON對象返回None而我的代碼給出了錯誤,因為Python不允許將None附加到字符串。

在這種情況下,什么是防止附加任何內容的最有效的計算方法? 我將要遍歷數億個字符串對於速度非常重要。

我找到的最常見的解決方案是使用filter(None,yourList),但不適用於我的情況,因為我要遍歷具有不同樹結構的不同JSON對象,並且僅搜索和提取某些值。

我正在處理數百萬個JSON對象,因此,如果這是一個因素,那么速度和計算效率比代碼的緊湊性更為重要。

簡而言之

a = None

b = 'this string' + somefunction(a)

print(b)

這個字符串

這是我能想到的最好的

def somefunction(strr):
    if strr == None:
        return ''
    else: 
        return strr

但是我想知道這是否是最快的解決方案。 由於我要遍歷數億個對象,因此任何加速都將非常有益。

如果等於None,可以將a轉換為''

a = str(a) if a is not None else ''

然后將其添加到b

b = 'WAKA' + a

或者,如果您不介意將0 / Nones / empty-somethings轉換為'' ,則可以編寫如下內容:

b = 'WAKA' + (a if a else '')

要么:

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

我認為這些變體幾乎是沒有C代碼的Python中最快的變體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM