簡體   English   中英

從列表中的字符串中提取前四位數字

[英]Extract first four digits from string within an list

我有一個文件夾名稱列表。 一些名稱僅包含數字,而其他名稱在某些文本之前帶有數字前綴。

在文件夾名稱包含數字和文本的地方,我只想提取數字(前四位數字)。

internal_list = [f.name for f in os.scandir(internal_path) if f.is_dir() ]
print(internal_list)

internal_list顯示如下列表

[1001 Support, 1021 Training, 1022, 1023, 1033 Procedures]

我希望internal_digits顯示:

[1001, 1021, 1022, 1023, 1033] 

internal_digits = []
for filename in internal_list:
    if filename in '0123456789':
        internal_digits.append(filename[0:4])
print (internal_digits)

您可以使用正則表達式匹配:

In [9]: [int(re.match(r'\d+', name).group(0)) for name in internal_list]
Out[9]: [1001, 1021, 1022, 1023, 1033]

筆記:

  • 假設總有一場比賽。 在生產代碼中,我可能將此編寫for帶錯誤檢查的for循環。
  • 這將使用字符串開頭的所有數字。 如果您需要的話,將\\d+更改為\\d{4}將需要四位數字。
internal_digits=[i.split()[0] for i in internal_list]

暫無
暫無

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

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