我试图迭代表整数和加入他们基于有条件使用python标准图书馆。 例如,我有一个名单的整数,看起来这样:
listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
我想循环,通过这个清单并结合的价值观,这样的结果将是一个串的形式:
result = '000-20-4-60-8000-1-9'
(在线都包括在内)。 条件是,如果上述数字不等于零一冲必须放在它的前面。 如果下一个值等于零,这是加入结束之前的价值。
我试图迭代表整数和加入他们基于有条件使用python标准图书馆。 例如,我有一个名单的整数,看起来这样:
listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
我想循环,通过这个清单并结合的价值观,这样的结果将是一个串的形式:
result = '000-20-4-60-8000-1-9'
(在线都包括在内)。 条件是,如果上述数字不等于零一冲必须放在它的前面。 如果下一个值等于零,这是加入结束之前的价值。
这将帮助: (考虑到数字是正在给定名单)
def join(lst):
return "".join(list(map(lambda x: str(-x), lst))).lstrip('-')
listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
print(join(listOfIntegers)) # 000-20-4-60-8000-1-9
过程:
9
变得 -9
0
没有效果 -0
是 0
在蟒蛇hyphen
在我们的情况 lstrip('-')
可以帮助我们。一个简单的方法,建立一个串整数列表的,随后通过一个简单的regex更换:
listOfIntegers = [1, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
inp = ''.join([str(x) for x in listOfIntegers])
result = re.sub(r'(?<=.)(?=[^\D0])', '-', inp)
print(result) # 100-20-4-60-8000-1-9
这是一个简单的解决办法:
listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
for i in listOfIntegers:
if i != 0:
print("-" + str(i), end="")
else:
print(str(i), end="")
每个项目的清单,我们检查,如果项目不等于0。 如果它不等于0,我们打印出来的项目有一个破折号,在它前面,并使用 end
参数,以避免新的线。 如果这是0,我们只需打印出来的项目。
使用一个循环:
def func(nums):
result = ''
for i, num in enumerate(nums):
if num != 0 and i != 0:
result += '-'
result += str(num)
return result