簡體   English   中英

Python:使用 for 循環提取和保存特殊字符之間的字符串

[英]Python: Extract and save string between special characters using a foor loop

我有一個較長的字符串,其中包含由 # 分隔的數字(參見下面的示例)。 我想使用 for 循環來存儲單個 arrays 中字符之間的數字序列。

#
1 2 3 4 3 8
#
6 9 2 5 7 8
#
2 0 1 6 7 2
#

我該如何繼續? 提前致謝!

普通的舊循環呢?

for line in long_string.split("\n"):
    if line != '#':
        numbers = list(map(int, line.split(" ")))
        print(numbers)

哪個輸出:

[1, 2, 3, 4, 3, 8]
[6, 9, 2, 5, 7, 8]
[2, 0, 1, 6, 7, 2]

您也可以使用 go

for line in long_string.split("\n"):
    try:
        numbers = list(map(int, line.split(" ")))
        print(numbers)
    except ValueError:
        pass

但要小心,因為這將完全忽略有字母數字字符的行。

我們可以在這里使用re.findall和列表推導:

inp = """#
1 2 3 4 3 8
#
6 9 2 5 7 8
#
2 0 1 6 7 2
#"""

seq = [[int(x) for x in y.split()] for y in re.findall(r'\d+(?:\s+\d+)*', inp)]
print(seq)

# [[1, 2, 3, 4, 3, 8], [6, 9, 2, 5, 7, 8], [2, 0, 1, 6, 7, 2]]

暫無
暫無

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

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