连接列表以为字典键创建字符串

时间:2019-05-16 07:21:45

标签: python list

我有一个字符串列表。

在这里,我试图将其分为两部分:

word_tag = line[:-1] + "/" + line[-1]

一个是从第一个到最后一个,另一个是最后一个,即标签。

但是,它给了我以下错误:

该行是:

line: ['#', 'DELM']
  

TypeError:只能将列表(而不是“ str”)连接到列表

我想将其存储为密钥,有没有更好的存储方法,以便可以更好地检索标签部分?:

 if word_tag in emissionProbDict.keys():
        emissionProbDict[word_tag] = emissionProbDict[word_tag] + line.count(word_tag)
    else:
        emissionProbDict[word_tag] = line.count(word_tag)

3 个答案:

答案 0 :(得分:3)

您要输出列表还是字符串?

如果要列出:

word_tag = line[:-1] +["/"] + [line[-1]]

如果要输入字符串:

word_tag=''.join(line[:-1]) + '/' + line[-1]

答案 1 :(得分:1)

选中print( line[:-1] )print( line[-1] )
您的列表只有一个元素[ "#" ]和单个字符串"DELM",没有列表。
您不能使用字符串连接列表。

您可以append()字符串列出

line = ['#', 'DELM']

word_tag = line[:-1]     # list
word_tag.append("/")     # append element to list
word_tag.append(line[1]) # append element to list

或者您必须将字符串转换为列表

word_tag = line[:-1] + [ "/" ] + [ line[1] ]

甚至

word_tag = line[:-1] + [ "/", line[1] ]

或使用.extend()

word_tag = line[:-1]
word_tag.extend( [ "/", line[1] ] )

如果您需要它作为字符串,则可以

word_tag = "".join( word_tag )

编辑:

您还可以在开始时将第一个列表[ "#" ]转换为字符串并连接字符串

word_tag = "".join( line[:-1] )  + "/" + line[1]

编辑:

如果您希望列表作为字典中的键,则不能这样做,因为键必须是不可变的并且列表是可变的-但是您可以将元组用作字典中的键,因为元组是不可变的。

word_tag = tuple( line[:-1] + [ "/" ] + [ line[1] ] )

答案 2 :(得分:1)

据我了解,您正在尝试将列表元素从first连接到last-1,然后依次连接列表的/last元素。

为此,您需要从 firstlast-1 中加入元素,然后添加/和{{ 1}}元素。

尝试一下。

last

word_tag = ''.join(line[:-1])+'/'+line[-1]将列表元素从''.join(line[:-1])连接到first

相关问题