本文目录一览:
- 1、python 字典问题
- 2、python 字典 替换文本多行 求高手解答 代码最好清晰效率高 详见问题补充
- 3、关于Python的字典替换的问题
- 4、python如何遍历多键值的字典并使用对应键的值来替换?
python 字典问题
letterCounts[letter] = letterCounts.get (letter, 0) + 1
这个是计数的常见写法,意思是如果letter没有在字典里存在,那么就返回0,这个0相当于一个初始化的值.
在比较复杂的初始化默认值个人建议应该使用collections.defaultdict来替代字典.
如果改一下,可以变成
import collections
letterCounts = collections.defaultdict( int )
for letter in "Mississippi":
letterCounts[ letter ] += 1
print( letterCounts )
python 字典 替换文本多行 求高手解答 代码最好清晰效率高 详见问题补充
#coding=utf-8
'''
Created on 2014-11-20
@author: Neo
'''
todo = {
10: {'AAAA': '1.1.1.1'},
20: {'BBBB': 'bbbbb'},
30: {'#': ''},
}
fp = open('test.txt')
data = ''
i = 0
for line in fp.readlines():
i += 1
if i in todo.keys():
print 'line', i, line
for key in todo[i]:
line = line.replace(key, todo[i][key])
print 'after replace:', line
data += line
fp.close()
#保存在另一个文件
ret = open('result.txt','w+')
ret.write(data)
ret.close()
result:
line 10 AAAA
after replace: 1.1.1.1
line 20 BBBB
after replace: bbbbb
line 30 A##AA####A
after replace: AAAA
关于Python的字典替换的问题
我的思路是:正则匹配 数字/字符串 然后替换,具体操作的话,你最好能把问题描述再清楚些。
python如何遍历多键值的字典并使用对应键的值来替换?
dict = {('丝印两处', '丝印二处', '丝印两道', '丝印二道', '丝印2道'): '丝印2处', ('丝印三处', '丝印三道', '丝印3道'): '丝印3处'}
ss = ["黑色MI0000C-BK002 含三道丝印", "黑色MI0000C-BK002 含丝印三道", "黑色MI0000C-BK002 含3道丝印"]
for s in ss:
for k, v in dict.items():
for src in k:
s = s.replace(src, v)
print(s)
注意:你的dict不足以涵盖你的输入,所以只有中间那句是替换了