【发布时间】:2020-07-22 04:08:23
【问题描述】:
我有一个代码用于查找列表中给定字符串的可能组合。但是面临前导零出现错误的问题,例如 SyntaxError: 十进制整数文字中的前导零是不允许的;对八进制整数使用 0o 前缀。如何克服这个问题,因为我想传递带有前导零的值(不能一直手动编辑值)。下面是我的代码
def permute_string(str):
if len(str) == 0:
return ['']
prev_list = permute_string(str[1:len(str)])
next_list = []
for i in range(0,len(prev_list)):
for j in range(0,len(str)):
new_str = prev_list[i][0:j]+str[0]+prev_list[i][j:len(str)-1]
if new_str not in next_list:
next_list.append(new_str)
return next_list
list = [129, 831 ,014]
length = len(list)
i = 0
# Iterating using while loop
while i < length:
a = list[i]
print(permute_string(str(a)))
i += 1;
【问题讨论】:
-
带0的数字从何而来?如果它们在您的代码中,请不要编写它们。另外,请删除与您的问题无关的所有内容(仅
list = [129, 831 ,014]行相关,其他所有内容均不相关。)另外,删除标签 3.x 或 2.7 之一:这两种语言处理前导零不同。 -
您可以使用字符串代替数字:
list = ['129', '831' ,'014'] -
„我想传递带前导零的值“请说明您是否真的想传递带前导零的整数 literals 或带前导的整数 值零。两者需要非常不同的方法——第一种需要嵌入到字符串中,后者没有明确定义,需要完全不同的程序设计。
-
有什么方法可以将整数列表转换为带前导零的字符串?
-
整数没有前导零。它们只是值——没有办法区分 0xA0 和 0o12 和 10 的 值,也没有办法区分使用任意数量的前导零创建的相同值(通过调用 int 而不是使用文字)。一旦你创建了一个“带前导零”的整数列表,这些零就消失了。
标签: python python-3.x