簡體   English   中英

從 python 列表元素中刪除多個空格

[英]Remove multiple spaces from python list elements

我有一個字符串中包含空格的列表。 我怎樣才能刪除這些空格。

['ENTRY', '      102725023         CDS       T01001']

我希望最終列表為:

['ENTRY', '102725023 CDS T01001']

我嘗試了 strip() function 但 function 在列表中不起作用。 非常感謝任何幫助。Remo

最簡單的方法是構建一個新的值列表並刪除空格。 為此,您可以使用列表理解和@CodeWithYash 提出的習語

old_list = ['ENTRY', '      102725023         CDS       T01001']
new_list = [" ".join(string.split()) for s in old_list]

請注意,這是有效的,因為split的默認行為是:

根據任何空格拆分,並從結果中丟棄空字符串。

如果您想刪除除空格以外的任何內容,則必須實現您自己的 function,可能使用正則表達式。

另請注意,在str中,字符串是不可變的:您無法就地編輯列表中的每個項目。 如果您不想創建新列表(例如,如果對列表的引用保存在程序的其他位置),您可以更改每個項目:

l = ['ENTRY', '      102725023         CDS       T01001']
for i, s in enumerate(l):
    old_list[i] = " ".join(s.split())
print(l)

Output:

['ENTRY', '102725023 CDS T01001']

假設這是你的字符串

string = "A     b       c   "

你想要這樣

Abc

你能做的是

string2 = " ".join(string.split())
print(string2)

我寫了這個 function:

s = "   abc       def     xyz    "
def proc(s):
    l = len(s)
    s = s.replace('  ',' ')
    while len(s) != l:
        l = len(s)
        s = s.replace('  ',' ')
    if s[0] == ' ':
        s = s[1:]
    if s[-1] == ' ':
        s = s[:-1]
    return s
print(proc(s))

這個想法是繼續用一個空格替換每兩個空格,然后檢查第一個和最后一個元素是否也是空格我不知道是否存在使用正則表達式或其他更簡單的方法。

暫無
暫無

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

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