a = "a26lsdm3684"
如何獲得值為 26 的整數(a[1] 和 a[2])?如果我寫 int(a[1) 或 int (a[2]) 它只會給我一個字符的整數。當我想要值為 26 的整數并將其存盤在變數 b 中時,我應該寫什么?
uj5u.com熱心網友回復:
切出兩個字符,然后轉換:
b = int(a[1:3]) # Slices are exclusive on the end index, so you need to go to 3 to get 1 and 2
uj5u.com熱心網友回復:
只要您知道確切的索引,您就可以從字串中獲取子字串并將其轉換為 int
a = "a26lsdm3684"
substring_of_a = a[1:3]
number = int(substring_of_a)
print(number, type(number))
uj5u.com熱心網友回復:
有不止一種方法可以做到這一點。
使用Slicing ,正如jasonharper和ShadowRanger所指出的那樣。
或用于re.findall
查找第一段數字。
或用于re.split
拆分非數字并找到第二個元素(第一個是開頭的空字串)。
import re
a = "a26lsdm3684"
print(int(a[1:3]))
print(int((re.findall(r'\d ', a))[0]))
print(int((re.split(r'\D ', a))[1]))
# 26
uj5u.com熱心網友回復:
如果您想轉換字串中的所有數字部分,并說將它們放在一個串列中,您可以執行以下操作:
from re import finditer
a = "a26lsdm3684"
s=[int(m.group(0)) for m in finditer(r'\d ', a)] ##[26, 3684]
uj5u.com熱心網友回復:
如果您想要來自同一字串的多個數字,則更具可持續性:
def get_numbers(input_string):
i = 0
buffer = ""
out_list = []
while i < len(input_string):
if input_string[i].isdigit():
buffer = buffer input_string[i]
else:
if buffer:
out_list.append(int(buffer))
buffer = ""
i = i 1
if buffer:
out_list.append(int(buffer))
return out_list
a = "a26lsdm3684"
print(get_numbers(a))
輸出:
[26, 3684]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494622.html
上一篇:垂直時如何正確對齊字串?
下一篇:無法快速將兩個字串值相乘