【发布时间】:2015-02-28 04:55:42
【问题描述】:
我正在尝试制作一个脚本,其中在给定数字的所有奇数之间放置一个“-”(即 991453 将是 9-9-145-3),但由于某种原因 python 不允许我插入一个 str 到一个整数列表中。我不断收到的错误是“TypeError:并非所有参数都在字符串格式化期间转换”
我的代码:
def DashInsert(text):
list_int = map(int, list(text))
for i in xrange(len(list_int)-1):
if (list_int[i] % 2 == 1) and (list_int[i+1] % 2 == 1):
print i
list_int.insert(i+1,'-')
return list_int
这是我的实际输入和错误:
999472
0
Traceback(最近一次调用最后一次):
文件“DashInsert.py”,第 17 行,在
print DashInsert(string)
文件“DashInsert.py”,第 11 行,在 DashInsert 中
if (list_int[i] % 2 == 1) and (list_int[i+1] % 2 == 1):
TypeError:字符串格式化期间并非所有参数都转换
【问题讨论】:
-
请显示实际输入和实际错误回溯。
-
仅供参考,这是因为您正在修改(特别是添加到)列表在迭代列表时。这几乎从来都不是一个好主意。我的意思是,看看你在做什么。首先将所有内容都转换为整数,然后找到所需的整数,然后在下一个位置插入 a string。因此,下一轮你的
%是字符串格式! -
@Two-BitAlchemist 我明白你在说什么,但是 if 语句不应该允许插入的“-”通过对吗?所以我不明白为什么它不起作用
-
什么?插入发生在 if 语句内部。 '-' 可以仅在该表达式的计算结果为真时插入。
标签: python list type-conversion