繁体   English   中英

有没有办法增加字符串变量中的数值? [Python]

[英]Is there a way to increase numeric value in a string variable? [Python]

我正在尝试一些网络抓取,它需要循环遍历一些具有字符串格式属性的元素。 但该字符串是一个在整个元素中递增的数值。

data-id="1"

有没有办法在保持字符串格式的同时将 data-id 的值增加到“2”到“3”等等?

首先,将字符串转换为 integer,您可以使用内置的int来做到这一点:

int(data_id)

然后将 1 添加到 integer:

int(data_id) + 1

最后,将新的 integer 转换回字符串,您可以使用内置的str来做到这一点:

str(int(data_id) + 1)

例如

>>> data_id = "1"
>>> data_id = str(int(data_id) + 1)
>>> data_id
'2'

我将在@rdas 和@Jax Teller 代码的评论中解释响应:

    1. 首先,您将字符串转换为 integer 值,为此我们使用int(my_string) ,假设您将结果存储在名为 int_val 的变量中,例如int_val = int(my_string)
    1. 然后你增加你的 integer 值int_val = int_val + 1
    1. 最后,您使用 str(...): my_str=str(int_val)将结果转换回字符串。
my_string = "1"
int_val = int(my_string)
int_val = int_val + 1
my_string = str(int_val)

这些步骤压缩在一行中,如my_str = str(int(my_str)+1) 祝你好运。

像下面这样的东西

def increment_str(string):
    return str(int(string) + 1)


print(increment_str("12"))

output

13

我建议首先使用 integer 变量,然后根据需要将其转换为字符串:

data_id = 1

fetch_element_(data_id=str(data_id))

data_id += 1

fetch_element_(data_id=str(data_id))

现在,您可以使用 for 循环和内置range function 简化该代码:

for data_id in range(1,4):  # This will loop through the numbers [1, 2, 3]
    fetch_element_(data_id=str(data_id))

当您的第一个 id 在开始时作为字符串给出时,您可以使用int构造函数将其转换为 int,如其他答案中所建议的:

data_id = int("1")  # or int(some_string_variable)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM