我是python的新手所以我有这个问题。首先让我告诉你我想做什么。 我有一个包含这样的文件:
-0
1
3
5
-00
2
3
18
321
...
我想取除-0,-xxxx字符串以外的每个元素并将它们转换为序列号,例如:
-0
1
2
3
-00
4
2
5
6
...
我已经这样做了,我已将索引保存到字典中 但我也希望在字符串中替换它们。
我想替换确切的单词,我不想替换可能包含在另一个单词中的单词,例如:
111 replaced by 6
not 445111 replaced by 6 ~>4456
我有这个想法,但我不知道它是否有效或值得。对于-xxxx中的每个元素,我将创建一个列表,附加其元素,然后重命名它们并替换它们,然后将它们保存到文件中。 有什么想法吗?
答案 0 :(得分:1)
我认为这就是你所需要的:
for i, word in enumerate(z):
if "-" not in word:
if word in d.keys():
z[i] = str(d[word])
else:
count = count + 1
d[word] = count
z[i] = str(count)
通过这种方式,您可以就地替换单词,而无需任何字符串操作。
答案 1 :(得分:0)
我不太清楚你想做什么。但是,如果列表元素和字符串元素应该是相同的,为什么不从列表中执行str(elem)。这样,您可以实际创建要在那里开始的字符串,而不是替换字符串中的元素。如果它不在字典中,你似乎只是替换了“word”。如果它已经在字典中,则将单词本身留在字符串中。
根据您显示的代码,这似乎就是这样做
您可以使用
创建字符串列表newz = []
for word in z:
if "-" not in word:
if word not in d.keys():
count = count + 1
d[word] = count
newz.append(str(count))
else:
newz.append(word)
else:
newz.append(word)