我有一個包含3行的字串,看起來像這樣。
@ 544 000
* 600 000
'7000..。
我想把這些數字作為整數提取到一個串列中。
Numbers = [544000, 600000, 7000]
我試著用for回圈來分割資料,就像這樣
。numbers = []
for word in data.split():
if word.isdigit():
numbers.append(int(word))
print(numbers)
但結果是
[544, 0, 600, 0]
我在這里的軌道是正確的,還是我需要以其他方式來分割它?
uj5u.com熱心網友回復:
你可以使用str.isdigit() str.join()(從行中提取每個字符,并用str.isdigit()檢查它。之后用str.join()連接每個數字):
s = ""@ 544 000
* 600 000
'7000...""
for line in s.splitlines()。
print("".join(ch for ch in lineifch.isdigit())
印刷品:
544000
600000
7000
或者作為一個串列:
numbers = [
int("".join(ch for ch in lineif ch.isdigit()) for line in s.splitlines()
]
編輯:增加了對不包含數字的行的檢查:
numbers = [
int(m)
for line in s.splitlines()
if (m := "".join(ch for ch in lineif ch.isdigit()) .isumeric()
]
uj5u.com熱心網友回復:
和@AndrejKesely一樣,用一個重合詞:
。import re
numbers = [int(''.join(re.findall(r'(d )', line)) for line in text.splitlines() ]
輸出:
>>> numbers
[544000, 600000, 7000]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312358.html
標籤:
