Python字符串比较没有按预期工作?

2024-04-28 17:15:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个Codeforces problem(我没有在比赛中,所以这不是作弊!)由于某些原因,我无法正确地获取字符串比较部分。在

问题的要点是,给定一个字符串数组,我必须计算要删除多少列才能使字符串按字典顺序排列。对于第二个测试用例场景,我们给出了

case
care
test
code

答案应该是2,去掉第一列和第三列,结果是

^{pr2}$

以下是我的代码:

^{3}$

''.join(list)应该给我一个字符串,这个字符串是列表中所有字符的串联,<运算符应该足够让计算机为第一列返回False,因为c小于t。。。但这里一定有什么不对劲。发生什么事?在


Tags: 字符串答案test字典场景测试用例code原因
1条回答
网友
1楼 · 发布于 2024-04-28 17:15:30

用这条线

out_copy = out_list[:]

您将out_listshallow copy。因此,out_list[i]和{}引用同一个对象。在

请注意,您在每次迭代中变异out_copy[i],因此无论fine的值如何,out_list[i]在每次迭代中都会发生变化。您可以通过在循环中添加print out_list来确认它

^{pr2}$

输出

[[], [], [], []]
[['c'], ['c'], ['t'], ['c']]
[['c', 'a'], ['c', 'a'], ['t', 'e'], ['c', 'o']]
[['c', 'a', 's'], ['c', 'a', 'r'], ['t', 'e', 's'], ['c', 'o', 'd']]

做一个深拷贝。在

import copy
begin = 0
out_list = [[] for i in range(n)]
while begin < m: #m is the length of each string
    out_copy = copy.deepcopy(out_list)
    .....
    .....
print out_list

产生正确的结果

[['a', 'e'], ['a', 'e'], ['e', 't'], ['o', 'e']]

相关问题 更多 >