我有一个字符串列表。
在这里,我试图将其分为两部分:
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)
答案 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
元素。
为此,您需要从( first
到last-1
)中加入元素,然后添加/
和{{ 1}}元素。
尝试一下。
last
word_tag = ''.join(line[:-1])+'/'+line[-1]
将列表元素从''.join(line[:-1])
连接到first
。