我正在尝试将以下字符串中的最后一个元素加1,预期的输出显示了所需的内容,下面的当前代码适用于所有情况,但对于version3
和version4
情况,该怎么办我解决了吗?
version1 = '1151.1'
version2 = '4.1.1'
version3 = '275.1.2.99'
version4 = '369'
version = version3[:-1] + str(int(version3[-1]) + 1)
print(version)
预期的输出:-
1151.2
4.1.2
275.1.2.100
370
答案 0 :(得分:4)
似乎您在说的“元素”实际上是字符串的最后一段,由句点(.
)分隔。一种执行预期任务的方法是先将字符串除以.
,然后从那里递增并重新连接。
version1 = '1151.1'
version2 = '4.1.1'
version3 = '275.1.2.99'
version4 = '369'
def increment_last_element(version):
return '.'.join(version.split('.')[:-1] + [str(int(version.split('.')[-1]) + 1)])
print(increment_last_element(version1))
# Output: 1151.2
以下是细分:
# Join the spliced str back together with periods
'.'.join(
# Split the str by periods; retain all previous values
version.split('.')[:-1] +
# Convert to str
# (also have to convert the str into a list for list concatenation)
[str(
# Increment last element in the spliced string by 1
int(version.split('.')[-1]) + 1)])
答案 1 :(得分:2)
使用带有[!a-zA-Z]
和str.split
的简单迭代
例如:
str.join
输出:
l = ['1151.1', '4.1.1', '275.1.2.99', '369']
for i in l:
val = i.split(".")
val[-1] = str(int(val[-1])+1)
print(".".join(val))
答案 2 :(得分:0)
您的version3
是一个字符串,因此version[-1]
仅返回字符串的最后一个字符。
您应该将版本字符串转换为整数数组,将最后一个数字加1,然后再转换回字符串。
version_array = [int(x) for x in version3.split('.')]
version_array[-1] += 1
print(".".join([str(x) for x in version_array]))