列表,元组等学习笔记小结

例1:列表切片
  names = ["zhangsna","lisi","wangwu","zhaoliu"]
  print(names[1])    #读取第2个元素,列表的下表是从0开始的   lisi
  print(names[0],names[2]) #读取第1个,第3个元素       zhangsna wangwu
  print(names[0:])   #读取下标0及往后的所有元素     ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
  print(names[1:])   #读取下标1及往后的所有元素    ['lisi', 'wangwu', 'zhaoliu']
  print(names[1:2])   #读取下标1及下标2前的所有元素   ['lisi']
  print(names[1:3])   #读取下标1及下标3前不包括3,这叫切片 ['lisi', 'wangwu']
  print(names[-1])   #读取最后1个元素      zhaoliu
  print(names[-3:])   #读取倒数第三个往后的所有数据;   ['lisi', 'wangwu', 'zhaoliu']
  print(names[-3:-1])   #顺序都是从左往右的      ['lisi', 'wangwu']
  print(names[:3])       #等于names[0:3]       ['zhangsna', 'lisi', 'wangwu']
  print(names[0:-1:2])        #步长2,隔开切片      ["zhangsna","wangwu"]
  print(names[::2])   #等于names[0:-1:2]      ["zhangsna","wangwu"]
 
 
 列2:列表的追加:(追加是追加在末尾)
  names = ["zhangsna","lisi","wangwu","zhaoliu"]
  print(names)          
  names.append("kitty")
  print(names)
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'kitty']
 
 列3:插入到指定位置:
  names = ["zhangsna","lisi","wangwu","zhaoliu"]
  print(names)
  names.insert(1, "kitty")
  print(names)
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
  ['zhangsna', 'kitty', 'lisi', 'wangwu', 'zhaoliu']
 
 列4:修改列表内容;
  names = ["zhangsna","lisi","wangwu","zhaoliu"] 
  print(names)
  names[1] = "Brace"
  print(names)
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
  ['zhangsna', 'Brace', 'wangwu', 'zhaoliu']
 
 
 列5:列表内容的删除:
 删除1:
  names = ["zhangsna","lisi","wangwu","zhaoliu"] 
  print(names)
  names.remove("lisi")
  print(names)         #输出:['zhangsna', 'wangwu', 'zhaoliu']
 删除2:
  print(names)
  del names[1]         #指定下标删除
  print(names)         #输出:['zhangsna', 'wangwu', 'zhaoliu']
 删除3:
  names = ["zhangsna","lisi","wangwu","zhaoliu"] 
  print(names)
  names.pop()          #默认不输入下标,删除最后一个
  print(names)         #输出:['zhangsna', 'lisi', 'wangwu']
 删除4:
  print(names)
  names.pop(1)         #指定下标删除
  print(names)         #['zhangsna', 'wangwu', 'zhaoliu']
 列6:查找元素的下标:
  names = ["zhangsna","lisi","wangwu","zhaoliu"]
  print(names.index("lisi"))      #输出:1
  print(names[names.index("lisi")])    #输出:lisi
 
 
 列7:列表相同元素个数统计: 
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  print(names.count("lisi"))      #输出:2
 
 列8: 列表元素的清除
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  names.clear()
  print(names)          #输出:[]
 
 列9:列表元素的反转:
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  names.reverse()
  print(names)          #输出:['lisi', 'zhaoliu', 'wangwu', 'lisi', 'zhangsna']
 
 列10:列表元素的排序
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  names.sort()
  print(names)          #输出:['lisi', 'lisi', 'wangwu', 'zhangsna', 'zhaoliu']
 
 
 列11:列表元素合并: 
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  names1 = [1,2,3,4,5]
  names.extend(names1)
  print(names)          #输出:['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi', 1, 2, 3, 4, 5]
  print(names1)          #输出:[1, 2, 3, 4, 5]
 
 
 列12:列表元素浅复制(浅拷贝):只拷贝第一层,更深层次不拷贝,和copy.copy一样
 
 列1:
  names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
  names2 = names.copy()
  print(names)
  print(names2)
  names[2]="李李"
  print(names)
  print(names2)
 
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', '李李', 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
  
 列2:
  names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
  names2 = names.copy()
  print(names)
  print(names2)
  names[2]="李李"
  names[3][1]="bbbbb"
  names[3][2]="ccccc"
  print(names)
  print(names2)
 
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
 
 要想完整拷贝,需要用到copy模块, copy.deepcopy 深拷贝:
 
  import copy
  names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
  names2 = copy.deepcopy(names)
  print(names)
  print(names2)
  names[2]="李李"
  names[3][1]="bbbbb"
  names[3][2]="ccccc"
  print(names)
  print(names2)
 
 输出结果:
  ['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
  ['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
 
 
 列13:列表循序:
  names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
  for i in names:
  print(i)
  
  输出:
  zhangsna
  lisi
  wangwu
  ['a', 'b', 'c']
  zhaoliu
  lisi
 
 浅拷贝的4种实现方式:
  person = ["name",['a',100]]
  方式1:
  P1 = copy.copy(person)
  方式2:
  p2 = person[:]
  方式3:
  p2 = person.copy()
  方式4:
  p3 = list(person)
 
  names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
  p1 = list(names)
  names[3][1] = 100
  print(p1)
  
  输出:
  ['zhangsna', 'lisi', 'wangwu', ['a', 100, 'c'], 'zhaoliu', 'lisi'] 
 浅拷贝的应用(联合账号): 
  person = ["name",["saving",100]]
  p1 = person.copy()
  p2 = person.copy()
  p1[0] = 'alex'
  p2[0] = 'fengjie'
 
  p1[1][1] = 50
  p2[1][1] = 30
  print(p1)
  print(p2)
 输出结果:
  ['alex', ['saving', 30]]
  ['fengjie', ['saving', 30]]

8. 元组tuple:只读列表,不能增删改;
 
 names = ('alex','jack')
 
 只有2个方法,一个是count,一个是index.
 
  
9. 删除变量:
 del name1
 
10.集合set 用于去重;
 >>> ids = [1,2,3,1,3,1,4,5,1,2,3]
 >>> id = list(set(ids))
 >>> id
 [1, 2, 3, 4, 5]
 >>> print(set(ids))
 {1, 2, 3, 4, 5} 

猜你喜欢

转载自www.cnblogs.com/brace2011/p/9180466.html
今日推荐