2018年6月19日【python学习笔记】

列表

python中的数据类型:数字(不可变)、字符串(不可变)、列表(可变)、元祖(不可变)、字典(可变)、集合(不可变)
容器类型的数据:列表、元祖、字典、集合(序列)

列表(数组):一个列表中可以存储多个不同类型的数据
列表存储数据的方式:将多个数据放到一个中括号[]里面,多个数据之间用逗号隔开
列表特点:列表是可变的(指的是里面的元素的个数和值是可变的)
中括号[]是列表的标志

  • 1.声明一个列表:

声明了一个列表list1,有5个元素,分别是1,2,3,10.9,'abc'

  list1 = [1, 2, 3, 10.9, 'abc']
  print(list1)

声明一个空的列表

  list2 = []
  • 2.获取列表元素

a.获取单个元素(通过元素获取下标)

下标的范围:0元素个数-1;-1元素个数
注意:通过下标获取元素的时候,下标不能越界

  list1 = [1, 2, 3, 10.9, 'abc']
  print(list1[0])   # 获取下标是0的元素
  print(list1[-1])
  print(list1[-2])
b.获取列表中的部分元素(切片)

列表名[开始下标:结束下标],列表名[开始下标:结束下标:步长]

  list3 = [2, 10.5, 'aa', 'abc', 10]
  print(list3[1:4])   # 获取到的是1~3下标的值,获取不到4下标的值
  print(list3[:4])    # 从第一个元素开始到下标为3的所有元素
  print(list3[2:])    # 获取从下标是2开始到列表最后的所有元素
  print(list3[:])     # 获取列表开始到结束的所有元素
  print(list3[0:4:2])  # 获取的是从下标为0开始到下标为3,每2个元素取一个
  print(list3[::2])   # 获取开始到结束中,下标为偶数的元素
c.遍历列表
  list4 = [1, 34, 6, 2, 8, 91, 4]
  for item in list4:
      if item % 2 == 0:
          print(item)

  sum1=0
  for x in list4:
      sum1 += x
  print(sum1)

使用while循环

  i = 0  # i就是列表元素对应的下标
  while i < len(list4):
      print(list4[i])
      i += 1

获取下标是奇数的元素

  i = 1
  while i < len(list4):
      print(list4[i])
      i += 2

  i = 0
  while i < len(list4):
      if i % 2 == 0:
          i += 1
          continue
      print(list4[i])
      i += 1

在列表中添加元素

list1 = []

  • 1.append方法:列表名.append(元素)

append是将元素添加到列表的最后

  list1.append('abc')
  print(list1)
  list1.append(10)
  print(list1)

练习:找出列表中[1, 34, 5, 6, 89, 3, 2, 4]所有的偶数,并保存起来

  list2 = [1, 34, 5, 6, 89, 3, 2, 4]
  list3 = []
  for x in list2:
      if x % 2 == 0:
          list3.append(x)
  print(list3)
  • 2.insert:列表名.insert(下标,元素)

在指定的下标前插入指定的元素

注意:这儿的下标可以越界
  list4 = [1, 2, 3, 4, 5, 6, 7, 8]
  list4.insert(1, 'a')
  print(list4)

通过insert在4和5之间插入元素'b';再在8的后面插入元素'c'

  list4 = [1, 2, 3, 4, 5, 6, 7, 8]
  list4.insert(4, 'b')
  print(list4)
  list4.append('c')
  print(list4)
  list4.insert(8, 'c')  # 当下标大于等于列表的长度,会插到列表的最后
  print(list4)
  • 2.修改元素:通过下标拿到对应的元素,然后重新赋值

    list1 = [1, 2, 3, 4, 5, 6]
    list1[1] = 20
    print(list1)
    

list1 = [1, 2, 3, 4, 5, 6]
让列表的所有元素变为原来的2倍

  list1[:] = 2, 4, 6, 8, 10, 12
  print(list1)

  list1 = [1, 2, 3, 4, 5, 6]
  for x in range(0, len(list1)):
      list1[x] = list1[x] * 2
  print(list1)

让列表中偶数位的元素变为原来的2倍

  list1 = [1, 2, 3, 4, 5, 6]
  print(list1[::2])
  for x in range(0, len(list1)):
      list1[x] = list1[x] * 2
  print(list1[::2])

删除元素

  • 1.del语句:在python中,del可以删除任何内容

del语句删除列表元素:del 列表名[下标]

注意:删除的时候下标也是不能越界
  str1 = 'Hello'
  list1 = ['a', str1, 10+20, 'b', True]
  print(list1)

删除下标为1的元素

  del list1[1]
  print(list1)

删除列表中所有的偶数

  list1 = [1, 2, 3, 4, 5, 6, 7, 8]

  出错
  x = (0~7)
  x = 0 list1[0] = 1  list = [1, 2, 3, 4, 5, 6, 7, 8]
  x = 1 list1[1] = 2  list = [1, 3, 4, 5, 6, 7, 8]
  x = 2 list1[2] = 4  list = [1, 3, 5, 6, 7, 8]
  x = 3 list1[3] = 6  list = [1, 3, 5, 7, 8]
  x = 4 list1[4] = 8  list = [1, 3, 5, 7]
  x = 5 list1[5] =   越界
  for x in range(0, len(list1)):
       if list1[x] % 2 == 0:
           del list1[x]

通过下标删除要注意下标的重新分配的问题

  list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  x = 0
  while x < len(list1):
      if list1[x] % 2 == 0:
          del list1[x]
      else:
          x += 1
  print(list1)

删除列表中的字符串

isinstance(变量,类型):判断指定变量/值是否是指定的类型
str(字符串)、int(整型)、float(浮点型)、bool(布尔)、list(列表)、tuple(元祖)、dict(字典)

  re = isinstance('aa', str)  # 获取'aa'是否是字符串
  print(re)
  list3 = ['a', 1, 20, 'pp', 19.3, 'ohk']
  x = 0
  while x < len(list3):
      if isinstance(list3[x], str):
          del list3[x]
      else:
          x += 1
  print(list3)
  • 2.通过remove方法删除指定元素

格式:列表名.remove(元素)

  list4 = ['a', 'b', 'c', 1, 2, 3]
  list4.remove('c')
  print(list4)

如果列表中有多个相同元素,remove只删除第一个

  list4 = ['a', 'b', 'c', 1, 2, 'c']
  list4.remove('c')
  print(list4)

删除列表[1, 3, 4, 7, 8, 2, 3, 4, 1]中所有的奇数

  list5 = [1, 3, 4, 7, 8, 2, 3, 4, 1]
  x = 0
  while x < len(list5):
      value = list5[x]
      if value % 2 != 0:
          list5.remove(value)
      else:
          x += 1
  print(list5)
  • 3.使用pop()方法删除指定下标的元素

格式:列表名.pop(下标) 从列表中取出指定下标对应的元素
格式:列表名.pop() 从列表中取出最后一个元素

  list6 = [1, 2, 3, 4, 5, 6]
  delitem = list6.pop(1)   # 将下标是1的元素从list6中取出,并存到delitem中
  print(delitem, list6)

  del_item = list6.pop()
  print(del_item, list6)

将一个列表[1, 2, 3, 4, 5, 6]中的元素全部取出放到另一个列表里面变成[6, 5, 4, 3, 2, 1]

  list6 = [1, 2, 3, 4, 5, 6]
  list7 = []
  while len(list6) > 0:

      # 从前往后取
      value = list6.pop(0)
      list7.insert(0, value)

      # 从后往前取
      # value = list6.pop()
      # list7.append(value)

  print(list6)
  print(list7)

常用函数

  • 1.求列表的长度

    list1 = [1, 2, 3, 4, 5, 6]
    length = len(list1)
    print(length)
    
  • 2.列表的加操作

列表1 + 列表2 :将列表1和列表2中的元素,组合成新的列表

  list2 = [1, 2, 3, 4] + ['a', 'b', 'c', 'd']
  print(list2)
  • 3.列表的*的操作

列表*数字 将列表中元素重复指定次数,组合成一个新的列表

  list3 = [10, 2] * 4
  print(list3)
  • 4.in 和 not in

元素in列表:判断指定的元素是否在指定的列表中

  list4 = ['abc', '123', 1, 10]
  re = 'abc' in list4
  print(re)

元素 not in 列表:判断指定元素是否不在列表中

  re = 'ab' not in list4
  print(re)
  • 5.获取列表中的最大元素

格式:max(列表)

  list5 = [1, 34, 6, 78, 90, 12, 35]
  max1 = max(list5)
  print(max1)

  list6 = ['a', 'b', 'c', 'd', 'aaa']
  print(max(list6))
注意:获取最大值或最小值的时候,列表中的元素的类型要么都是数字,要么都是字符串
  list6 = ['a', 'b', 96, 97, 98]
  print(max(list6))
  TypeError: '>' not supported between instances of 'int' and 'str'
  • 6.获取列表中的最小值

格式:min(列表)

  list5 = [1, 34, 6, 78, 90, 12, 35]
  print(min(list5))

list6 = ['a', 'b', 'c', 'd', 'aaa']
  print(min(list6))

练习:求比赛的平均分数(5个裁判,给表演打分。去掉一个最高分,最低分,最后的平均分)

  import random
  list1 = []
  for _ in range(5):
      num = random.randint(0, 10)   # 随机产生浮点数是random.uniform
      list1.append(num)
  print(list1)

去掉最高分和最低分

  max1 = max(list1)
  min1 = min(list1)
  list1.remove(max1)
  list1.remove(min1)

计算平均数
sum(列表):计算列表元素中所有的元素的和

print(sum(list1)/len(list1))

  • 7.将其他的数据转换成列表

个数:list(数据)
将字符串转换成列表

  list1 = list('abcdef')
  print(list1)

将列表转换成字符串(不是仅仅将列表的元素拼接成字符串的,而是将整个列表所有的结构都作为字符串的字符)

  str1 = str([1, 2, 3, 4, 'a'])
  print(str1)

将range转换成列表

  list2 = list(range(10))
  print(list2)

你可能感兴趣的:(2018年6月19日【python学习笔记】)