【问题标题】:Nested loop on list string python ,列表字符串 python 上的嵌套循环,
【发布时间】:2022-01-10 15:26:31
【问题描述】:

我想通过第二个位置迭代第二个循环

我的错误是

发生异常:TypeError(注意:显示了完整的异常跟踪,但执行暂停在:) 只能将列表(不是“int”)连接到列表

s = "dog cat cat dog"

b = list(s.split(" "))

for x in b:

    for y in str(b+1):

        print(x,'/', y)

【问题讨论】:

  • b +1 是什么意思?,你不能将 1 添加到列表中!
  • 什么是预期的输出/你想达到什么目标?请提供更多细节。谢谢
  • 我想开始第二个循环,这将是第二个到 x 索引 [dog, cat , cat , dog] x = dog y = cat
  • 如何创建一个循环,如果它找到相同的单词,它应该用 1 替换它,并以与 [dog,cat,cat,dog] 相同的方式移动输出应该是 [1,2, 2,1]

标签: python string


【解决方案1】:

修复代码的方法是:

s = "dog cat cat dog"

b = list(s.split(" "))

for x in b:

    for y in b[1:]:

        print(x,'/', y)

即使我认为它没有做它应该做的事情,因为输出是:

dog / cat
dog / cat
dog / dog
cat / cat
cat / cat
cat / dog
cat / cat
cat / cat
cat / dog
dog / cat
dog / cat
dog / dog

也许你想要类似的东西

s = "dog cat cat dog"
b = list(s.split(" "))
for x,y in zip(b,b[1:]):
    print(x,'/', y)

输出:

dog / cat
cat / cat
cat / dog

【讨论】:

  • 如何创建一个循环,如果它找到相同的单词,它应该用 1 替换它,并以与 [dog,cat,cat,dog] 相同的方式移动输出应该是 [1,2, 2,1]
【解决方案2】:

正如您在 cmets 中指定的那样,“dog cat cat dog”应该返回 [1, 2, 2, 1]。我不知道你为什么想要这个,但也许这段代码可以解决你的问题?

s = "dog cat cat dog"
b = s.split(" ")

score = [0] * len(b)
for i in range(len(b)):
    for j in range(1, len(b)):
        if b[i] == b[j]:
            score[i] += 1

运行代码会得到score=[1, 2, 2, 1]

【讨论】:

  • 如何创建一个循环,如果它找到相同的单词,它应该用 1 替换它并以相同的方式移动,如 [dog,cat,cat,dog] 输出应该是 [1,2, 2,1]
猜你喜欢
  • 1970-01-01
  • 2015-04-25
  • 2023-03-03
  • 1970-01-01
  • 2022-12-15
  • 2014-01-29
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
相关资源
最近更新 更多