zoukankan      html  css  js  c++  java
  • 渗透利器-kali工具 (第四章-3) Python数据结构学习

    本文内容:

    • 列表、元组、字典、集合
    • 数据结构的技巧
    • 综合项目提升

    数据结构:拥有足够多的东西,需要一个存储东西的容器,数据越多,就会越重视数据结构的作用。

    1.列表、元素、字典、集合:

      1.列表:[]

        1.列表最显著的特征是:

          1.列表中的每一个元素都是可变的;

          2.列表中的元素是有序的,也就是每一个元素都一个位置;

          3.列表可以容纳Python中的任何对象。

        2.列表的操作:

          1.insert() 插入,需要指定插入位置:

            在使用insert方法的时候,必须指定在列表中需要插入新的元素位置,插入元素的实际位置是在指定位置元素之前的位置。

            如果指定插入的位置在列表中不存在,实际上也就超出指定列表长度,那么这个元素一定会被放在列表的最后位置。

            举例:

              a = ['a','b','c']

              a.insert(1,'d')

            补充:

              a[0:0]=['e']

              也可以起到插入的效果。

          2.remove() 删除

            举例:

              a = ['a','b','c']

              a.remove('e')

            补充:[其余删除方式]

              del a[0:1]

              a[1]=e 也是可以说是修改

      2.字典:{}

        1.字典特征:

          1.字典中的数据必须是键值对的形式出现。

          2.逻辑上,键是不能重复的,而值可以重复。

          3.字典中的键[key]是不可变的,也就是无法修改的。

          4.字典中的值[auo]是可变的,可修改,可以是任何对象。

          举例:

            dict{'a':'bai','c':'hei','d':'red'}

          书写:字典的书写方式,键与值并不能脱离对方而存在。

        2.字典的操作:

          列表中有用来添加多个元素的方法extend(),在字典中也有对应的添加多个元素的方法:date();

          删除字典中的元素则使用del方法。

          注意:

            字典是不能够切片的。

            通过键对值进行操作:比如删除,输出等操作。

          1.添加字典:

            a = {'k1':1,'k2':2,'k3':3}

            a['k4'] = 4 添加单个键值对

            a.update({'k5':5,'k6':6}) 添加多个键值对

          2.删除字典:

            del a['key6'] 删除键值对,通过指定键删除

      3.元组:()

        1.元组的特征:

          1.元素其实可以理解成一个稳固版的列表,但是元组是不可修改的。

          2.因此在列表中存在的方法均不可以使用在元组上。

          3.但是元组是可以被查看索引的,方式和列表一样。

        2.元组的操作:

          举例:

            a = ('a','b','c')

            a[0]

      4.集合:()

        1.集合特征:

          1.集合则更接近数学集合的概念;

          2.每一个集合中的元素是无序的、不重复的任意对象。

          3.可以通过集合去判断数据的从属关系。

          4.可以通过稽核吧数据结构中重复的元素减掉。

          注意:集合不能被切片也不能被索引,除了做集合运算之外,集合元素就可以添加还有删除。

        2.集合的操作:

          举例:

            a = {1,2,3,4}

          1.添加:[add]

            a.add(5)

          2.删除:[discard]

            a.discard(4)

    2,数据结构的技巧:

      1.多种循环:

        1.多种循环:
          sorted函数按照长短、大小、英文字符的顺序给每个列表中的元素进行排序。

          这个函数会常在数据展示中使用,其中一个非常重要的地方,sorted函数不会改变列表本身,可以理解成是先将列表复制,然后在进行顺序整理。

          在列表过程中,如果同时需要两个列表应该怎么办?

          可以使用zip函数:

          格式:for a,b in zip (L1,L2):

          举例:

            a = [1,2,3,4]

            b = [1,4,5,6]

            for a,b in zip(a,b):

              print(b,'is',a)

      2.推导式:

        1.列表推导式:

          list = [i |  for i in a]

          列表推导式的用法很好理解,可以简单的看成两部分:

            从 | 后面是for循环表达式,| 前面可以让认为是我们想要放在列表中的元素。

          enumerate:循环列表时获取元素的索引。

          普通写法:

            a = []

            for i in range(1,5):     1-4

              a.append(i)

            print(a)

          推导式:

            a = {i:j for i,j in zip(range(1,5),'abcd,')}

            print(a)

            运行结果:{1:'a',2:'b',……4,'d'}

    3,综合项目提升:

      1.将一句话,每个单词分开来:

        a = 'my name dddd'

        b = a.split()

        print(b)

        运行结果:['my','name','dddd']

      2.统计文章中单词出现的次数:

        代码:

    1 import string
    2 path = 'c/User/python/ww.txt'
    3 with open(path ,'r') as text:
    4   words = [raw_word.string(string.puncuation).lower() for raw_word in text.read().split()]
    5   words_index = set(words)
    6   counts_dict = {index:words.counts(index) for index in words_index}
    7   for word in sorted(counts,key=lambda x:counts_dict[x],reverse=True):
    8     print('{}--{} times'.format(word,counts_dict[word]))
  • 相关阅读:
    P1019 单词接龙
    P1219 八皇后
    Find a way
    P1056 排座椅
    P1067 多项式输出
    关于前缀和,A
    洛谷P1223
    洛谷P1803
    洛谷P1208
    常用方法 Excel转换为DataSet
  • 原文地址:https://www.cnblogs.com/xz25/p/12873957.html
Copyright © 2011-2022 走看看