100天自学大数据

《金哥百变Python零基础教程6》~字典

2020-05-28  本文已影响0人  金哥数据分析

本章知识点 :> 字典

北京地铁2号线
字典与列表

字典访问

list1 = ["你好","中国","生活","男孩"]
list2 = ['hello','china',’life',‘boy’]
i = list.index('中国')
list2[i] #结果为hello


字典函数

for 循环

list = [1,2,3,4,5]
for i in list:
    print(i)
试一下 在线Python

d = {
"你好" : 'hello',
"中国" : 'china',
"生活" : ’life',
"男孩" : ‘boy’
}
for ch,en in d.items():
    print(ch + '-->' + en)
试一下 在线Python


单词计数
aa bb aa cc dd
aa bb cc aa ee
ff gg hh 
jj ff gg
ee ss

list = ['aa', 'bb']
d = {'aa':0, 'bb':0}

def wordcount(list): ( 还记得函数吗?)
    d = {}
    #..
    return d

image.png

list = ['aa' , 'bb' ,'aa' ,'cc' ,'dd',
'aa' ,'bb' ,'cc', 'aa', 'ee',
'ff' ,'gg' ,'hh' ,
'jj' ,'ff', 'gg',
'ee' ,'ss']

def wordcount(list):
    d = {}
    for word in list:
        is_in = word in d
        if is_in == False:
           d[word] = 0
        d[word] = d[word] + 1
    return d


综合运用
北京地铁2号线

def huanxian(start, end):
    fangxiang = ''
    zou_num = 0
    #待实现
    return (fangxiang,zou_num) #可以同时返回两个变量哦~

start = '前门'
next = start
next = d[next]
next = d[next]
试一下 在线Python

图示
思路
image.png

def huanxian(start, end):
    fangxiang = ''
    zou_num = 0
    right_d = {'前门':'崇文门','崇文门’:'北京站','北京站':'建国门','建国门’:'朝阳门','朝阳门':'东四十条','东四十条’:'东直门','东直门':'雍和宫','雍和宫’:'安定门','安定门':'鼓楼大街','鼓楼大街’:'积水潭','积水潭':'西直门','西直门’:'车公庄', '车公庄':'阜成门','阜成门':'复兴门','复兴门':'长椿街','长椿街':'和平门','和平门':'前门'} #右行字典
    left_d = {'崇文门':'前门','北京站':'崇文门’,'建国门':'北京站','朝阳门':'建国门’,'东四十条':'朝阳门','东直门':'东四十条’,'雍和宫':'东直门','安定门':'雍和宫’,'鼓楼大街':'安定门','积水潭':'鼓楼大街’,'西直门':'积水潭','车公庄':'西直门’, '阜成门':'车公庄','复兴门':'阜成门','长椿街':'复兴门','和平门':'长椿街','前门':'和平门'} #左行字典
    #环线最优路径算法
    next = start
    right_n = 0 #先尝试右行
    while next != end:
        next = right_d[next] #下一站
        right_n = right_n +1 #走了几站

    next = start
    left_n = 0 #尝试左行
    while next != end:
        next = left_d[next] #下一站
        left_n = left_n +1 #走了几站

    if right_n < left_n:
        fangxiang = '右‘
         zou_num = right_n

    if left_n < right_n:
        fangxiang = '左‘
         zou_num = left_n
    return (fangxiang, zou_num)
试一下 在线Python


def say_dangqian():
    print("现在出站")

def huida(fangxiang, zou_num):
    #待实现
    a = 0
    while a < zou_num:
        print(fangxiang+'走1站') #一定要4个空格
        a = a + 1

start = '?' #具体执行时填写
end = '?' #具体执行时填写
fangxiang = ''
zou_num = 0
if start == end:
    say_dangqian()
(fangxiang,zou_num) = huanxian(start_num, end_num)
huida(fangxiang, zou_num)


下一章会先复习 字典 的知识,不用担心今天的新知识太多~

p6 知识点总结:


image.png
目录

0基础教程金哥Python自学笔记P0~变量与运算
0基础教程金哥Python自学笔记P1~循环与控制

上一篇 下一篇

猜你喜欢

热点阅读