我正在尝试一些网络抓取,这需要循环遍历一些具有字符串格式属性的元素。但字符串是一个数值,它会在整个元素中增加。
data_id="1"
有没有办法将 data-id 的值增加到“2”到“3”等,同时保持字符串格式?
首先,将字符串转换为整数,您可以使用内置的
int
来实现:
int(data_id)
然后将该整数加 1:
int(data_id) + 1
最后,将新整数转换回字符串,您可以使用内置的
str
来实现:
str(int(data_id) + 1)
例如
>>> data_id = "1"
>>> data_id = str(int(data_id) + 1)
>>> data_id
'2'
我将在@rdas和@Jax Teller代码的评论中解释响应:
int(my_string)
,假设您将结果存储在名为 int_val 的变量中,如 int_val = int(my_string)
,int_val = int_val + 1
,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"))
输出
13
我建议首先使用整数变量,并根据需要将其转换为字符串:
data_id = 1
fetch_element_(data_id=str(data_id))
data_id += 1
fetch_element_(data_id=str(data_id))
现在,您可以使用 for 循环和内置
range
函数来简化该代码:
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)