繁体   English   中英

Python-“太多值无法解压缩”,并且“列表没有属性” iteritems”

[英]Python - 'too many values to unpack', and 'list has no attribute 'iteritems''

我正在尝试比较两个字符串: devLinefin_h 当我在两个字符串中拆分单词并在两个字符串中遍历单词时,我总是收到错误too many values to unpack

如果我像其他SO帖子所述添加iteritems() ,则会出现此错误: list has no attribute 'iteritems'

字符串是:

Rob car Mary bike George House Jerry Condo

Rob car Mary dc George dc Jerry dc

我想检查string1中的单词是否与string2中的单词匹配。 我要比较的词是carbikehousecondo等替代词。 我想将这些词与cardcdcdc 如果单词相等,则输出true ,否则输出false 如果单词tuple是(bike, dc) ,则仍然打印出true,因为dc表示可以接受作为输入的任何值。

我的代码如下所示:

def compareLines(devLine, final_hypoth):

devSplit = devLine.split()
hypSplit = final_hypoth.split()

for word in hypSplit.iteritems():

      #if hword  != "?":
           print word

我也尝试过使用zip()函数,因为使用它似乎更pythonic:

def compareLines(devLine, final_hypoth):
    devSplit = devLine.split()
    hypSplit = final_hypoth.split()

    wordSet = [" ".join(tup for tup in zip(devSplit[1::2], hypSplit[1::2])]

    # what to do next? 

这会以(car, car)(bike dc)(house dc)(condo, dc)的数组一起打印出两个字符串中的奇数词。 但是,如何比较这两个值? 如果两个单词相等或两个比较都包含dc则此方法似乎更容易打印truefalse

zip循环成对单词:

for word1, word2 in zip(devSplit[1::2], hypSplit[1::2]):
    if word1 == word2 or word2 == 'dc':
        print 'true'
    else:
        print 'false'

请注意,为每对打印truefalse可能不是最有用的行为。 您可能只想打印一个汇总所有对是否都匹配的值,或者您想创建一个布尔比较值列表,或者可能要做其他事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM