d= {'a': 24, 'g': 52, 'i': 12, 'k': 33}
# 以列表形式输出字典d的key
# d.items()为字典d的键值对
b1 = [key for key, value in d.items()] # 列表
print (b1)
# 以列表的形式输出字典d的value
b2 = {value for key, value in d.items()} # 集合
print (b2)
# 颠倒字典d的key:value位置
b3 = {value: key for key, value in d.items ()} #字典
print (b3)
# 将字典d按value的值进行排序
b4 = sorted(d.items (), key=lambda x: x[1])
print (b4) # 列表
#key=lambda x: x[1] 为对前面的对象中的第二维数据(即value的值)进行排序。
#key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。
#zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
#如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
a = ['A','B','C']
b = [4,5,6]
c = [4,5,6,7,8]
z1= zip(a,b)
print(*z1) #('A', 4) ('B', 5) ('C', 6)
z2=zip(a,c)
print(*z2) # ('A', 4) ('B', 5) ('C', 6)
print(type(z2)) # zip
d= {'a': 24, 'g': 52, 'i': 12, 'k': 33}
# 先按x[1]维度降序,再按x[0]维度升序 返回列表
b1 = sorted (d.items(),key=lambda x:(-x[1],x[0]) )
print(b1)
k,v = zip(*b1) # *将列表中元素解压成 元组
print(k) # ('g', 'k', 'a', 'i')
print(v) # (52, 33, 24, 12)
d= {'a': 24, 'g': 52, 'i': 12, 'k': 33}
# 先按x[1]维度降序,再按x[0]维度升序 返回列表
d = sorted(d.items(),key=lambda x:(-x[1],x[0]))
print(d) #[('g', 52), ('k', 33), ('a', 24), ('i', 12)] 列表中每个元素包含2个值
d2,_=list(zip(*d)) # *将列表中每个元素 解压成 元组 ,只要前一个值
print(d2) #('a', 'g', 'i', 'k')
print(type(d2)) #<class 'tuple'>
# 按照 值从 0-len() 从新组成字典
d2_dict = dict(zip(d2,range(len(d2))))
print(d2_dict) # {'g': 0, 'k': 1, 'a': 2, 'i': 3}
# 将一段文本,按字频数从高-低,0-length,映射成字典
import collections
# 用 Counter 统计单词出现的次数,为了之后按单词出现次数的多少来排序
data='2019年是五四运动100周年,也是中华人民共和国成立70周年。一百年来,一代又一代中国青年接续奋斗,用青春之我创造青春之中国、青春之民族。\
回顾中国青年百年奋斗史,“爱国、进步、民主、科学”的理念早已深刻融入中国青年的血液中,他们满怀对祖国和人民的赤子之心,积极投身党领导的革命、建设、改革伟大事业: '
counter = collections.Counter(data) # 中文中统计字出现的次数 counter ={'字':字频}
# 先是x[1]维度降序,再x[0]维度升序 返回list
count_pairs = sorted(counter.items(), key=lambda x:(-x[1], x[0]))
words, _ = list(zip(*count_pairs)) # 只要从高到低的 字
# 单词到整数的映射
word_to_id = dict(zip(words, range(len(words)))) # 按字频排序后,{字:序号} 高频:0,1...
print(word_to_id)
#{'年': 0, '国': 1, '、': 2, '中': 3, '青': 4, ',': 5, '0': 6, '之': 7, '民': 8, '的': 9, '\u3000': 10, '一': 11, '春': 12, '1': 13, '。': 14, '人': 15, '代': 16, '周': 17, '和': 18, '奋': 19,......