簡體   English   中英

在不使用for循環的情況下從Python中的元組中刪除特定字符?

[英]Remove specific characters from a tuple in Python without using for loop?

我有一個像這樣的元組 - ('app(le','orange','ban(ana')我想刪除括號“(”來自app(le和ban)(ana。我這樣做了:

a=("App(le", "M(nago","banana")
b= list(a)
c = []
for x in b:
    x = x.replace("(","")
    c.append(x)
c=tuple(c)

這給了我想要的輸出。 但是我想在不使用for循環的情況下這樣做。

聽起來你想要使用列表理解!

嘗試c = tuple(x.replace('(','') for x in b)

這是關於列表理解的一些文檔!

使用maplambda

例如:

a= ("App(le", "M(nago","banana")
print( tuple(map(lambda x: x.replace("(",""), a)) )

輸出:

('Apple', 'Mnago', 'banana')

不是很優雅,但它適用於無循環。 雖然Rakesh和RMonaco的答案可能更好,但這消除了所有循環。

a = '/n/'.join(a).replace('(','').split('/n/')

僅供參考:我對Rakesh,RMonaco和我的解決方案進行了快速測試。 我懷疑這將是一個問題,但這是我感興趣的一點,所以我將分享。 在每個解決方案中經過一千萬次迭代(正確,10E6)。 我認為在這一點上歸結為個人偏好......

>>> Rakesh:   0:00:09.869150
    RMonaco:  0:00:06.967905
    tnknepp:  0:00:05.097533
>>> 

因此,每次迭代的最大差異為0.47微秒。

暫無
暫無

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

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