gpt4 book ai didi

python - 为什么这两种实现会产生不同的结果?

转载 作者:行者123 更新时间:2023-11-28 19:59:15 25 4
gpt4 key购买 nike

我问了this question并得到了很好的答案(谢谢!)。要解决的部分问题涉及取一个词并将其去交错,这样您就得到两个词,一个包含原始词的偶数索引字符,另一个包含奇数索引字符。

响应者使用以下代码来执行此操作:

for w in words:
even, odd = w[::2], w[1::2]

我用这种(更糟糕的)方式做到了:

for w in words:
lst1 = []
lst2 = []
for c in w:
if w.index(c) % 2 == 0:
lst1.append(c)
else:
lst2.append(c)
even = ''.join(lst1)
odd = ''.join(lst2)

好吧,出于多种原因,我的方法更糟糕。但在我看来,两种方式至少应该产生相同的词对。然而,我使用他的实现得到的结果与我的不同。这是为什么?

最佳答案

因为 index(c) 询问单词中字母第一次出现的索引——所以你正在为每个字母创建一个“桶”。因此,如果第一个 'a' 是奇数,则 所有 'a' 字母也会被填充到“奇数”字符串中。要解决此问题,您应该只使用 enumerate() 来计数:

for i, c in enumerate(word):
# check whether ``i`` is even/odd, etc

关于python - 为什么这两种实现会产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com