从玩耍Excel表格到MySQL数据仓库,之后进入数据分析的天坑,然后再到大数据平台HIVE、Hbase。接着Django Web全栈开发。在走过这一圈之后,很多的内容学习都是碎片化的,在未来一段时间找几本书籍系统的学习一下,顺便做个笔记给后来的学生。
字典是 Python 里面最有功能特色的一种内置类型。
字典包括一系列的索引,不过就已经不叫索引了,而是叫键,然后还对应着一个个值,就叫键值。每个键对应着各自的一个单独的键值。这种键和键值的对应关系也叫键值对,有时候也叫项。
>>> eng2sp = {
'one': 'uno', 'two': 'dos', 'three': 'tres'}
键(key):‘one’:, ‘two’ , ‘three’
值(value):‘uno’, ‘dos’, ‘tres’
以一个统计频次来生成一个字典。
def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
h = histogram('brontosaurus')
h
{
'a': 1, 'b': 1, 'o': 2, 'n': 1, 's': 2, 'r': 2, 'u': 2, 't': 1}
可以使用 for 遍历循环字典中的数据。
def print_hist(h):
for c in h:
print(c, h[c])
h = histogram('parrot')
print_hist(h)
a 1 p 1 r 2 t 1 o 1
通常都是通过key去找value,反向查找也是可以的。
def histogram(s):
d = dict()
for c in s:
if c not in d:
d[c] = 1
else:
d[c] += 1
return d
def reverse_lookup(d, v):
for k in d:
if d[k] == v:
return k
raise LookupError()
h = histogram('parrot')
h
{
'p': 1, 'a': 1, 'r': 2, 'o': 1, 't': 1}
k = reverse_lookup(h, 2)
k
'r'
如果查找不到会抛出异常。
k = reverse_lookup(h, 3)
Traceback (most recent call last): File "" , line 1, in <module> File "" , line 5, in reverse_lookup ValueError
字典和列表是可以互相转换。
>>> person={
"name":"Johnson","age":9,"gender":"male","height":"140cm"}
>>> person.keys()
dict_keys(['name', 'age', 'gender', 'height'])
>>>list1=list(person.keys())
>>>list1
['name', 'age', 'gender', 'height']
>>>list2=list(person.values())
>>>list2
['Johnson', 9, 'male', '140cm']
>>>list3=list(person.items())
>>>list3
[('name', 'Johnson'), ('age', 9), ('gender', 'male'), ('height', '140cm')]
>>> scoreDict={
"John":82,"Christina":96,"Johnson":100,"Marry":73,"Emily":88,"Justin":92}
>>> scoreList=list(scoreDict.items())
>>> scoreList.sort()
>>> print (scoreList)
[('Christina', 96), ('Emily', 88), ('John', 82), ('Johnson', 100), ('Justin', 92), ('Marry', 73)]
# 等价于
>>> scoreList.sort(key=lambda items: items[1])
>>> print(scoreList)
[('Marry', 73), ('John', 82), ('Emily', 88), ('Justin', 92), ('Christina', 96), ('Johnson', 100)]
dic={
'id': '102', 'time': 1563262149, 'name': ' 打卤', 'shop': ' 1'}
for k in dic:
if dic[k] == "102" :
dic[k] = "105"
print (u"替换了:",k,"对应的values")
print (k, dic[k])
替换了: id 对应的values
id 105
time 1563262149
name 打卤
shop 1