老男孩python学习_day004知识点

时间:2021-08-02 21:55:02

 

1.列表

  1)增加 append():
    li = ['alex', 'wusir', 'egon', '女神', 'taibai']
    li.append('日天')
    li.append(1)     # 在后边追加
    print(li)     # ['alex','wusir','egon','女神','taibai','日天',1]

          》while 1:     # 完成持续增加,按Q/q退出
    username = input('>>>')
    if username.strip().upper() == 'Q':   #去空格 大写
      print('已退出')
      break
    else:
      li.append(username)
      print(li)

  2)插入 insert():
    li.insert(4,'春哥')     # 插入到4的位置
    print(li)         # ['alex', 'wusir', 'egon', '女神', '春哥', 'taibai']

  3)迭代插入 extend():   # int类型不可迭代,分解到元素,插入一个个元素
    li.extend('二哥')
    li.extend([1,2,3])
    print(li)         # ['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥', 1, 2, 3]

  4)删除 pop()  remove():
    li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]

    name = li.pop(1)    # 按下标删除 有返回值,返回删除的元素 默认删除最后一个
    print(name,li) # alex ['taibai', 'wusir', 'egon', '女神']

    li.remove('taibai')     # 按元素去删除 无返回值
    print(li)        # ['alex', 'wusir', 'egon', '女神']


  5)清空 clear():
    li.clear()
    print(li) # []

  6)删除列表 del():
    del li         # 直接在内存中删除这个列表 再打印会报错
    print(li)

  7)切片删除 del():
    li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]
    del li[0:2]       # ['wusir','egon','女神']
    del li[2:]      # ['taibai','alex']
    print(li)

 

  8)改:
    li[0] = '男兽' # 直接赋值覆盖
    print(li)       # ['男兽', 'alex', 'wusir', 'egon', '女神']

  9)切片删除后迭代插入:
    li = ['taibai', 'alex', 'wusir', 'egon', '女神', ]
    li[0:2] = '云姐asdf' # 把前两个删除,然后迭代插入每一个元素
    print(li)       # ['云', '姐', 'a', 's', 'd', 'f', 'wusir', 'egon', '女神']
    li[0:3] = [1,2,3,'春哥','咸鱼哥'] # 把前两个删除,然后插入这五个(因为用的是列表)
    print(li)         # [1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']

  10)查
    li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
    l1 = li[0]
    print(l1)        # alex
    l2 = li[0:3]
    print(l2)        # ['alex',[1,2,3],'wusir'] 切片查打印出来是列表
    for i in li:
      print(i)     # 竖着打印出来 taibai alex wusir egon 女神

    li = ['alex', 'wusir', 'egon', '女神', 'taibai']
    print(li.index('wusir'))   # 1
    print(li.index('wusir',1,2))   # 可切片 返回位置 找不到报错


  11)元素个数 len(li)
   12)元素出现次数:

    print(li.count('taibai'))     # 返回出现次数 1

  13)排序 sort():
    正向排序:
      li = [1,5,4,7,6,2,3]
      li.sort()
      print(li)          # [1,2,3,4,5,6,7]
    反向排序:
      li.sort(reverse=True) # 默认false 改成true
      print(li)          # [7,6,5,4,3,2,1]

  14)反转 reverse():
    li.reverse()
    print(li)            # [3,2,6,7,4,5,1]

2.列表的嵌套
  li = ['taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
  print(li[1][1])           # 藤

  1)首字母大写再放回去
  》 name = li[0].capitalize()
    li[0] = name
    print(li)            # ['Taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
  》 li[0] = li[0].capitalize() # 前两句合成一句写
    print(li)            # 结果一样

  2)把alex全变成大写再放回原处
    li[3][0] = li[3][0].upper()
    print(li)            # ['taibai', '武藤兰', '苑昊', ['ALEX', 'egon', 89], 23]

  3)替换
    直接赋值覆盖:
      li[2] = '苑日天'
      print(li)          # ['taibai', '武藤兰', '苑日天', ['alex', 'egon', 89], 23]
    元素内部改变:
      li[2] = li[2].replace('昊','ritian')
      print(li)          # ['taibai', '武藤兰', '苑ritian', ['alex', 'egon', 89], 23]

3.元组
  只读列表,可循环查询,可切片。
  儿子不能改,孙子可能可以改(如果是属于列表 可改)
  tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

  1) for i in tu:
    print(i)     # 竖着打印

  2) tu[4][3]=tu[4][3].upper()
    print(tu)     # taibai全大写再放回去,因为儿子是列表,所以可以改孙子

  3) tu[4].append('sb') # 列表后追加
    print(tu)     # (1, 2, 3, 'alex', [2, 3, 4, 'taibai', 'sb'], 'egon')

  4) join  可迭代对象都可操作(除了数字 bool )
    s = 'alex'
    s1 = '-'.join(s) # 用-连接可迭代对象的每一个元素
    print(s1)    # a-l-e-x

  5) 列表转化成字符串 list ----> str join()
    li = ['taibai','alex','wusir','egon','女神',]
    s = ''.join(li)    # taibaialexwusiregon女神 (无缝衔接)
    print(s)
    字符串转化为列表 str ----> list split() 分割

4.range
  实际上就是一个按顺序排列的数字的列表

    for i in range(3,10):
      print(i)   # 竖着打印3456789 顾头不顾尾
    for i in range(10):
      print(i)   # 默认从0开头 0123456789
    for i in range(0,10,3):
      print(i)   # 3是步长 0369
    for i in range(10,0,-2):
      print(i)    # 10 8 6 4 2
    for i in range(0,10,-1):
      print(i)   # 不报错 但什么也不输出(面试题)
    for i in range(8,-3,-2):
      print(i)   # 8 6 4 2 0 -2

  循环打印列表中元素,嵌套的列表也拆开打印
  li = [1, 2, 3, 5, 'alex', [2, 3, 4, 5, 'taibai'], 'afds']

  》 for i in li:             # 法一
      if type(i) == list:   # 此处i代表元素
        for k in i:
          print(k)
      else:print(i)

  》 for i in range(len(li)):     # 法二
      if type(li[i]) == list:   # 此处i代表下标
        for j in li[i]:
          print(j)
      else:  
        print(li[i])