在主函数和用户定义的函数中使用相同的代码将提供不同的输出,即使输入相同

时间:2019-06-19 11:31:27

标签: python-3.x string list sorting

所以,这个问题说,我们必须使用插入排序算法对数组进行排序,并在每次迭代后用空格分隔数字来打印结果数组。 请帮助我了解问题所在。为什么会引发错误?

30
df['tp'] = pd.to_timedelta(df.groupby('id').cumcount() * 30, unit='S')
print (df)
    id Section      time    A    B       tp
0  abc      1H  00:00:00  0.1  0.6 00:00:00
1  abc      2H  00:00:30  0.2  0.3 00:00:30
2  abc      3H  00:01:00  0.5  0.1 00:01:00
3  abc      4H  00:01:30  0.1  0.1 00:01:30
4  def      1H  00:00:00  0.1  0.3 00:00:00
5  def      2H  00:00:30  0.2  0.1 00:00:30
6  def      3H  00:01:00  0.6  0.5 00:01:00
7  ghj      1H  00:00:00  0.3  0.1 00:00:00
8  ghj      2H  00:00:30  0.1  0.7 00:00:30
9  ghj      3H  00:01:00  0.1  0.2 00:01:00

当我在main函数中打印数组时,输出为:1 4 3 5 6 2 但是,当我尝试在函数insertSort2中打印数组时 运行时发生错误。

input: 1 4 3 5 6 2

TypeError:序列项目1:预期的str实例,找到的int

1 个答案:

答案 0 :(得分:1)

arrinsertionSort开头的字符串列表。然后,您在第3行:small=int(arr[i])中将一个元素转换为int。

所以small现在是整数,然后将其分配到列表arr[j+1]=small中。

这意味着arr包含字符串和整数的混合。 join方法需要所有字符串。