簡體   English   中英

Split vs Strip in Python 去除多余的空白

[英]Split vs Strip in Python to remove redundant white space

請問我是否需要在split()之前使用strip()去除Python中的任何多余空間(之后變成列表)? 例如:

string1 = '   a      b '

我想要結果:

#list1=[a,b]

當我測試時,我發現list1=string1.split()就足夠了。 但不知何故,我的老師說string1.strip().split() 也許他錯了?

根據文檔

如果sep未指定或為None ,則應用不同的拆分算法:連續空格的運行被視為單個分隔符,如果字符串具有前導或尾隨空格,則結果將在開頭或結尾不包含空字符串。

這意味着, strip()的邏輯已經包含在split()中,所以我認為,你的老師錯了。 (請注意,如果您使用的是非默認分隔符,這將會改變。)

https://docs.python.org/3/library/stdtypes.html#str.split

如果 sep 未指定或為 None,則應用不同的拆分算法:連續空格的運行被視為單個分隔符,如果字符串具有前導或尾隨空格,則結果將在開頭或結尾不包含空字符串。

你是對的(至少在使用默認的空格分割的情況下)。 忽略前導和尾隨以及連續的空白字符,並且由於.strip()除了刪除前導和尾隨空格外什么都不做,它會在此處產生相同的 output。

我嘗試使用:

string1 = '   a      b '
list1 = string1.strip().split()
print(list1)

string1 = '   a      b '
list1 = string1.split()
print(list1)

他們給出了相同的結果。

因此不一定需要使用strip() ,因為它只會刪除開頭的空格(前導空格)和末尾的空格(尾隨空格)。

暫無
暫無

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

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