zoukankan      html  css  js  c++  java
  • Python之旅第四天(列表、元祖、字典和习题)

    第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一直没看懂。不多说开始今天的整理:

    一、今天发现一个题目有了新的想法,姑且记录一下。题目:#用户输入用户名、密码、邮箱,限定长多不超过16位,并制作表格

      

    s = ""
    a = 0
    while a < 3:
        v1 = input("用户名>>>")
        v1 = v1[0:16]
        v2 = input("密  码>>>")
        v2 = v2[0:16]
        v3 = input("邮  箱>>>")
        v3 = v3[0:16]
    
        once = "{0}	{1}	{2}
    "
        b = once.format(v1,v2,v3)
        s = s + b
        a += 1
    
    print(s.expandtabs(20))

    下面开始今日知识的正点部分:

    一、列表list

      什么是列表呢?就是  [ ] 这对中括号包围起来的内容,用“,”逗号分开即可,里面可以放你任何想放进去的东西,字符串、数字、bool、列表、元祖、字典,任何你想放的都可以的。

      列表是有序排列的,按照从零开始的索引就可以读取里面的数值了。

      和字符串str一样都是可以用切片的方法进行切片。

      for、while循环都可以对他们进行遍历,同时每个元素都可以修改哦。

      索引取值    print(li[3])

      切片,切片结果也是列表   print(li[3:-1])

       for循环   while循环

       for item in li:
        print(item)

      1.索引进行修改:

    li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
    li[1] = 120
    print(li)
    li[1] = [11,22,33,44]
    print(li)

      2.删除 del  li[1]

      3.切片 li[3:-1]         del li[3:-1]

      4.关于in的操作

    # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
    # v1 = "石振文" in li     
    # print(v1)                    #v1 = False
    # v2 = "age" in li
    # print(v2)                     #v2 = True

      5.查找深度索引

    # li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]
    # li[4][1][0]        #石振文所在位置

      6.str字符串和列表之间的转换

      字符串转为列表时,每个字符会成为单独的列表元素

      test = "abc"       li_test = list(test)     结果可得到li_test = ["a","b","c"]

      反过来列表转换为字符串,直接强行转换的结果

      test = ["a","b","c"]    st_test = str(test)    结果可得到str_test =" ["a","b","c"]"

      所以要想达到["a","b","c"]成为abc的效果,就可以使用join方法或者很麻烦

    # 列表转换成字符串,
    # 需要自己写for循环一个一个处理: 既有数字又有字符串
    # li = [11,22,33,"123","alex"]
    # # r = str(li) # '[11,22,33,"123","alex"]'
    # # print(r)
    # s = ""
    # for i in li:
    #     s = s + str(i)
    # print(s)
    # 直接使用字符串join方法:列表中的元素只有字符串
    # li = ["123","alex"]
    # v = "".join(li)
    # print(v)

    二、元组,元素不可被修改,不能被增加或者删除
      # tuple
      # tu = (11,22,33,44)
      # tu.count(22),获取指定元素在元组中出现的次数
      # tu.index(22)

       1. 书写格式
      # tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
      # 一般写元组的时候,推荐在最后加入 ,
      # 元素不可被修改,不能被增加或者删除
        2. 索引
      # v = tu[0]
      # print(v)

        3. 切片
      # v = tu[0:2]
      # print(v)

        4. 可以被for循环,可迭代对象
      # for item in tu:
      # print(item)

       5. 转换
      # s = "asdfasdf0"
      # li = ["asdf","asdfasdf"]
      # tu = ("asdf","asdf")
      #
      # v = tuple(s)
      # print(v)

      # v = tuple(li)
      # print(v)

      # v = list(tu)
      # print(v)

      # v = "_".join(tu)
      # print(v)

      # li = ["asdf","asdfasdf"]
      # li.extend((11,22,33,))
      # print(li)

      # 6.元组的一级元素不可修改/删除/增加
      # tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
      # # 元组,有序。
      # # v = tu[3][0][0]
      # # print(v)
      # # v=tu[3]
      # # print(v)
      # tu[3][0] = 567
      # print(tu)


    三、字典
      # dict
      # dict
      # dic = {
      # "k1": 'v1',
      # "k2": 'v2'
      # }
      # 1 根据序列,创建字典,并指定统一的值
      # v = dict.fromkeys(["k1",123,"999"],123)
      # print(v)

      # 2 根据Key获取值,key不存在时,可以指定默认值(None)
      # v = dic['k11111']
      # print(v)
      # v = dic.get('k1',111111)
      # print(v)

      # 3 删除并获取值
      # dic = {
      # "k1": 'v1',
      # "k2": 'v2'
      # }
    # v = dic.pop('k1',90)
    # print(dic,v)
    # k,v = dic.popitem()
    # print(dic,k,v)

    # 4 设置值,
    # 已存在,不设置,获取当前key对应的值
    # 不存在,设置,获取当前key对应的值
    # dic = {
    # "k1": 'v1',
    # "k2": 'v2'
    # }
    # v = dic.setdefault('k1111','123')
    # print(dic,v)

    # 5 更新
    # dic = {
    # "k1": 'v1',
    # "k2": 'v2'
    # }
    # dic.update({'k1': '111111','k3': 123})
    # print(dic)
    # dic.update(k1=123,k3=345,k5="asdf")
    # print(dic)

    # 6 keys() 7 values() 8 items() get update
    ##########

      1、基本机构
    # info = {
    # "k1": "v1", # 键值对
    # "k2": "v2"
    # }
       2 字典的value可以是任何值
    # info = {
    # "k1": 18,
    # "k2": True,
    # "k3": [
    # 11,
    # [],
    # (),
    # 22,
    # 33,
    # {
    # 'kk1': 'vv1',
    # 'kk2': 'vv2',
    # 'kk3': (11,22),
    # }
    # ],
    # "k4": (11,22,33,44)
    # }
    # print(info)

       3 布尔值(1,0)、列表、字典不能作为字典的key(实际是因为bool对应的01会与其他k值重复造成的)
    # info ={
    # 1: 'asdf',
    # "k1": 'asdf',
    # True: "123",
    # # [11,22]: 123
    # (11,22): 123,
    # # {'k1':'v1'}: 123
    #
    # }
    # print(info)

      4 字典无序

    # info = {
    # "k1": 18,
    # "k2": True,
    # "k3": [
    # 11,
    # [],
    # (),
    # 22,
    # 33,
    # {
    # 'kk1': 'vv1',
    # 'kk2': 'vv2',
    # 'kk3': (11,22),
    # }
    # ],
    # "k4": (11,22,33,44)
    # }
    # print(info)

       5、索引方式找到指定元素
    # info = {
    # "k1": 18,
    # 2: True,
    # "k3": [
    # 11,
    # [],
    # (),
    # 22,
    # 33,
    # {
    # 'kk1': 'vv1',
    # 'kk2': 'vv2',
    # 'kk3': (11,22),
    # }
    # ],
    # "k4": (11,22,33,44)
    # }
    # # v = info['k1']
    # # print(v)
    # # v = info[2]
    # # print(v)
    # v = info['k3'][5]['kk3'][0]
    # print(v)

      6 字典支持 del 删除
    # info = {
    # "k1": 18,
    # 2: True,
    # "k3": [
    # 11,
    # [],
    # (),
    # 22,
    # 33,
    # {
    # 'kk1': 'vv1',
    # 'kk2': 'vv2',
    # 'kk3': (11,22),
    # }
    # ],
    # "k4": (11,22,33,44)
    # }
    # del info['k1']
    #
    # del info['k3'][5]['kk1']
    # print(info)

      7 for循环
    # dict
    # info = {
    # "k1": 18,
    # 2: True,
    # "k3": [
    # 11,
    # [],
    # (),
    # 22,
    # 33,
    # {
    # 'kk1': 'vv1',
    # 'kk2': 'vv2',
    # 'kk3': (11,22),
    # }
    # ],
    # "k4": (11,22,33,44)
    # }
    # for item in info:
    # print(item)
    #
    # for item in info.keys():
    # print(item)

    # for item in info.values():
    # print(item)

    # for item in info.keys():
    # print(item,info[item])

    # for k,v in info.items():
    # print(k,v)

    # True 1 False 0
    # info ={
    # "k1": 'asdf',
    # True: "123",
    # # [11,22]: 123
    # (11,22): 123,
    # # {'k1':' v1'}: 123
    #
    # }
    # print(info)

     今天的内容真的真的很多,我还有一些方法没来的及整理,感觉明天中午的任务非常艰巨啊   

    下面是每个部分的方法

    list的:

      extend(参数要求:可迭代)  将可迭代参数逐个加入原有列表中   li = ["a","b","c"]       li.extend(["a","b"])结果是['a', 'b', 'c', 'a', 'b']

      append(无参数要求)   li = ["a","b","c"]       li.append(["a","b"])结果是['a', 'b', 'c', ['a', 'b']]

      clear清空列表      count()计算制定元素个数

      index(value,start = none,end = none)从左向右查找制定参数索引位置

      insert(插入索引位置num,制定内容)向制定索引位置增加参数

      pop(索引) 删除一个值,并获得该值,如不设置索引则直接删除最后一个

      remove(指定参数) 从左向右删除第一个指定参数,可限制范围

      sort(self, key = none, revorse = false/true)false从小到大重新排序列,true则从大到小

      元组的基本类似

    字典

      字典记住三个 keys、values、items,分别表示获得k值,获得v值,和获得一堆键值对

      dict.fromkeys的作用,生成字典

    v = dict.fromkeys(['a', 'b', 'c'],19)
    print(v)
    
    #结果{'c': 19, 'a': 19, 'b': 19}

      get(索引,设置的默认值)根据索引查找value值,如果没有找到则输出默认值或none

      pop(索引,默认值)根据索引查找,并删除索引所对应的键值对,不存在则输出默认值或none

      popitem随机删除一对键值对

      setdefault( k : v )或者(k = v)  向字典中设置键值对,如果对应索引已存在,则获取当前索引所对应的v值,不存在对应索引则增加该键值对

      update( k : v )或者(k = v)  向字典中设置键值对,如果对应索引已存在,则覆盖当前索引所对应的v值,即将原字典中的v值更新,不存在对应索引则增加该键值对

    哎呀呀,总算说完了,今天内容很多,还是得多练习啊,是不是各位大神看了觉得我脑残,都是从脑残走过来的,我脑残就脑残吧,智商只是buff,我攻速很快哦,要睡觉了,明天见。

  • 相关阅读:
    TCP服务器是否需要心跳包?
    用最简单的函数实现功能:判断一个int数据是否是2的x次幂(不能使用循环)。
    防止程序启动两次的方法CreateMutex()
    WINDOWS操作系统中可以允许最大的线程数
    setsockopt 设置socket 详细用法
    我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算
    D3DX_DEFAULT_NONPOW2
    【解决】Select网络模型问题——奇怪的发送接收问题
    CRC32 简单使用
    .NET开发总结 2010年2月
  • 原文地址:https://www.cnblogs.com/xiaoyaotx/p/12370135.html
Copyright © 2011-2022 走看看