python去重(汉字一样,里面的编码不一样)? python如何实现列表嵌套字典,字典内相同key去重,字典...
python\u4e2d\u5b9e\u73b0\u4e24\u4e2atxt\u6587\u6863\u7684\u53bb\u91cd\u529f\u80fd\uff08\u5373\u53bb\u6389\u7b2c\u4e00\u4e2a\u6587\u6863\u4e2d\u548c\u7b2c\u4e8c\u6587\u6863\u76f8\u540c\u7684\u884c\uff09# -*- coding: utf-8 -*-
#
# python 2.7
fp1 = file('', 'r')
fp2 = file('', 'r')
fp3 = file('', 'w')
d1 = {}
d2 = {}
isFirst = True
for line in fp1:
if not isFirst:
d1[hash(line)] = line
else:
isFirst = False
fp1.close()
isFirst = True
for line in fp2:
if not isFirst:
d2[hash(line)] = line
else:
isFirst = False
fp2.close()
diff = set(d1.keys()) - set(d2.keys())
for key in diff:
fp3.write(d1[key])
fp3.close()
\u6309\u7167\u4f60\u7684\u8981\u6c42\u7f16\u5199\u7684\u5b57\u5178\u5185\u76f8\u540ckey\u5408\u5e76\u7684Python\u7a0b\u5e8f\u5982\u4e0b
l=[{'a':1,'b':'haha'},{'a':3,'b':'haha'},{'a':2,'b':'xiaoming'}]
result=[]
temp=[]
for i in range(len(l)):
flag=False
suma=l[i]['a']
b=l[i]['b']
for j in range(i+1,len(l)):
if l[i]['b']==l[j]['b'] and (j not in temp):
flag=True
temp.append(i)
temp.append(j)
suma=suma+l[j]['a']
if i not in temp or flag==True:
result.append({'a':suma,'b':b})
print(result)
\u6e90\u4ee3\u7801(\u6ce8\u610f\u6e90\u4ee3\u7801\u7684\u7f29\u8fdb)
这是一个字符串的全角和半角的问题,可以导入 unicodedata 中的 normalize 函数先把全角转换为半角,然后再用 set 对列表去重,参考代码如下:
from unicodedata import normalize
list3=['热菜','凉菜','凉菜','硬菜']
set(map(lambda s: normalize('NFKC', s), list3))
输出:
{'硬菜', '热菜', '凉菜'}
扩展:
“ NFKC”代表“Normalization Form KC [Compatibility Decomposition, followed by Canonical Composition]”,并将全角字符替换为半角字符,这些半角字符与Unicode等价。
去重操作可以走个捷径,将列表转换为不重复的集合即可。示例代码见截图:
你说的‘凉菜’中的‘凉’字不一样,没看懂,字如果不一样在任何编码规则下其编码必须不同,这是基本的编码规则,不然电脑无法识别你要打出什么字了。
绛旓細鎸夌収浣犵殑瑕佹眰缂栧啓鐨勫瓧鍏稿唴鐩稿悓key鍚堝苟鐨Python绋嬪簭濡備笅 l=[{'a':1,'b':'haha'},{'a':3,'b':'haha'},{'a':2,'b':'xiaoming'}]result=[]temp=[]for i in range(len(l)):flag=False suma=l[i]['a']b=l[i]['b']for j in range(i+1,len(l)):if l[i]['b']==l...
绛旓細set 鍙互鍘婚噸
绛旓細1銆佸埄鐢ㄥ瓧鍏哥殑fromkeys()鍜宬eys()鏂规硶銆傚垪琛ㄥ幓閲 L =[1,2,3,4,5,6,6,5,4,3,2,1]鍒涘缓涓涓┖瀛楀吀 d ={} 鐢ㄥ瓧鍏哥殑fromkeys()鏂规硶鍘婚噸锛寰楀埌涓涓瓧鍏锛屽幓閲涔嬪悗鐨勫厓绱犱负閿紝鍊间负None鐨勫瓧鍏 {1:None, 2:None, 3:None, 4:None, 5:None, 6:None} fromkeys(iterable,value=None)L = ...
绛旓細python涓list鍘婚噸鐨勫绉嶆柟娉 浠婂ぉ閬囧埌涓涓棶棰橈紝鍦ㄥ悓浜嬮殢鎰忕殑鎻愮ず涓嬶紝鐢ㄤ簡 itertools.groupby 杩欎釜鍑芥暟銆備笉杩囪繖涓笢瑗挎渶缁堣繕鏄病鐢ㄤ笂銆傞棶棰樺氨鏄涓涓猯ist涓殑鏂伴椈id杩涜鍘婚噸锛屽幓閲涔嬪悗瑕佷繚璇侀『搴忎笉鍙樸傜洿瑙傛柟娉 鏈绠鍗曠殑鎬濊矾灏辨槸锛氳繖鏍蜂篃鍙锛屼絾鏄湅璧锋潵涓嶅鐖姐傜敤set 鍙﹀涓涓В鍐虫柟妗堝氨鏄敤set锛氫唬...
绛旓細鐢ㄩ泦鍚锛孭ython閲鐨剆et 鍏跺畾涔夊氨鏄竴涓棤搴忎笉閲嶅闆嗗悎銆備綘鍙互鎸夊崟璇嶅瓨鍏ヤ竴涓泦鍚堜箣涓紝闆嗗悎浼氳嚜鍔ㄥ府浣鍘婚噸鐨
绛旓細python鐨閫熷害鏁堢巼鏄笉楂樼殑锛屽浣曞閫熷害瑕佹眰姣旇緝楂樼殑璇濆缓璁彲浠ョ敤c鏉ュ啓銆傛垜鍐欎簡杩欎釜浠g爜锛宲ython2.6+windows xp娴嬭瘯閫氳繃銆傚笇鏈涜兘甯埌浣爚=== a=[] #鍒濆鍖栬鐢ㄥ埌鐨勫垪琛╝锛岀敤浜庤褰曞師濮嬭淇℃伅 b=[] #鍒濆鍖栬鐢ㄥ埌鐨勫垪琛╞锛岀敤浜庤褰曠粨鏋滄暟鎹紝鐢变袱椤规瀯鎴愩傚墠涓椤逛负琛屼俊鎭鈥滃皬鏄庯細90鈥濓紝鍚庝竴椤...
绛旓細棰樼洰閾炬帴 闅惧害锛氬洶闅 绫诲瀷锛 璐績銆佹爤 缁欏畾涓涓粎鍖呭惈灏忓啓瀛楁瘝鐨勫瓧绗︿覆锛屽幓闄ゅ瓧绗︿覆涓噸澶嶇殑瀛楁瘝锛屼娇寰楁瘡涓瓧姣嶅彧鍑虹幇涓娆°傞渶淇濊瘉杩斿洖缁撴灉鐨勫瓧鍏稿簭鏈灏忥紙瑕佹眰涓嶈兘鎵撲贡鍏朵粬瀛楃鐨勭浉瀵逛綅缃級銆傜ず渚1 绀轰緥2 閬嶅巻鏁扮粍锛屼竴涓竴涓冭檻鏄惁闇瑕侊紝鑻ラ渶瑕...
绛旓細Python鏁板瓧鍒楄〃鍘婚噸,杩樿兘鎸夊師鏉ョ殑椤哄簭杈撳嚭.绗竴绉嶆柟娉 alist = [1, 2, 2, 4, 4, 6, 7]b = []for i in alist:if i not in b:b.append(i)print(b)婧愪唬鐮(娉ㄦ剰婧愪唬鐮佺殑缂╄繘)绗簩绉嶆柟娉 alist = [1, 2, 2, 4, 4, 6, 7]formatList = list(set(alist))formatList.sort(...
绛旓細>>> re.sub("(.)\\1+", "\\1", "avvvcctaa")'avcta'
绛旓細-*- coding: utf-8 -*- python 2.7 fp1 = file('', 'r')fp2 = file('', 'r')fp3 = file('', 'w')d1 = {} d2 = {} isFirst = True for line in fp1:if not isFirst:d1[hash(line)] = line else:isFirst = False fp1.close()isFirst = True for line in fp2:...