python基本数据类型之列表list

list的基本功能

  • 结果类型  中括号括起来
  • 逗号(,)分割每个元素
  • 列表中的元素能够是数字,字符串,列表,布尔值全部的都能放
  • 索引,切片
?
1
2
3
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]
print (li[ 1 ])              # 索引取值
print (li[ 2 : 4 ])            # 切片取值(切片的结果也是列表)
  • 支持for循环
?
1
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]<br> for item in li:           # for循环列表<br>  print(item)
  • 支持while循环
  • 索引删除,切片删除
?
1
2
3
4
5
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]
del li[ 0 ]                 # 索引删除
print (li)
del li[ 0 : 3 ]               # 切片删除
print (li)
  • 索引修改,切片修改
?
1
2
3
4
5
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]
li[ 0 ] = 88                # 索引修改
print (li)
li[ 0 : 3 ] = 7 , 8 , 9           # 切片修改
print (li)
  • in操做
?
1
2
3
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]
v = 3 in (li)              # in操做
print (v)
  • 索引找值
?
1
2
3
li = [ 1 , 3 , 5 , "jianer" , [ "病毒尖儿" , 18 ], "cat" ]
v = li[ 4 ][ 0 ][ 2 ]          # 索引找并打印 
print (v)

转换python

  • 列表转换成字符串
  • 须要本身写for循环一个一个处理:既有数字又有字符串
  • 直接使用字符串join方法:只有字符串

list的方法(魔法)

  • 须要记忆的魔法有:append(追加),extend(扩展),insert(插入)app

  append  原来值最后追加,数字,字符,列表均可以进行追加ide

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.append( 2 )                # 追加再最后 原来值再后面追加,所以不用赋予新的值
print (li)

    clear     清空列表post

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.clear()                  # 清空列表
print (li)

    copy   拷贝(浅拷贝)ui

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
v = li.copy()               # 拷贝,浅拷贝
print (li)

  count    计数(计算元素出现的次数)spa

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
v = li.count( 8 )             # 计算元素出现的次数
print (v)

  extend  扩展原列表,参数可迭代对象(数字不能扩展,数字不可迭代)code

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.extend( "b" )              # 扩展追加。
print (li)

  index   根据值获取值的指引位置对象

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
v = li.index( 8 )             # 根据值获取值的索引位置
print (v)<br><br> 1                  重复字符,获取最左边位置,便再也不寻找

  insert   插入,也能够根据指引位置插入元素blog

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.insert( 2 , "b" )        # 前面参数指定索引,逗号分隔,加要插入的元素
print (li)

  pop    可索引删除某个值,无索引则默认删除最后一个值,赋予一个值也能够得到被删除的值排序

?
1
2
3
4
li = [ 6 , 8 , 7 , 5 , 8 ]
v = li.pop( 2 )               # 指定索引删除,无索引则默认删除最后一个值,也能够获取删除的值
print (li)
print (v)

  remove  删除列表指定值,左边优先

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.remove( 8 )                # 删除列表指定值,从左优先
print (li)

  reverse  将当前列表进行反转

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.reverse()                # 将当前列表进行反转
print (li)

  sort    排序,有秩序的排序。

?
1
2
3
li = [ 6 , 8 , 7 , 5 , 8 ]
li.sort(reverse = True )       # 当反转正确,则从大到小排序
print (li)

列表推导式

  列表推导式提供了从序列建立列表的简单途径。一般应用程序将一些操做应用于某个序列的每一个元素,用其得到的结果做为生成新列表的元素,或者根据肯定的断定条件建立子序列。

  每一个列表推导式都在 for 以后跟一个表达式,而后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。若是但愿表达式推导出一个元组,就必须使用括号。

1 vec = [2,4,6]
2 go = [3*x for x in vec]
3 print(go)
4 
5 [6, 12, 18]     # 这里咱们将每一个数据乘以三,获取一个新列表
1 freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
2 go = [weapon.strip() for weapon in freshfruit]
3 print(go)
4 
5 ['banana', 'loganberry', 'passion fruit'] #对序列每一个元素逐个调用方法

   也能够用if子句做过滤

1 vec = [2,4,6]
2 go = [x for x in vec if x >3]
3 print(go)
4 
5 [4, 6]

  其它一些示例

1 >>> vec1 = [2, 4, 6]
2 >>> vec2 = [4, 3, -9]
3 >>> [x*y for x in vec1 for y in vec2]
4 [8, 6, -18, 16, 12, -36, 24, 18, -54]
5 >>> [x+y for x in vec1 for y in vec2]
6 [6, 5, -7, 8, 7, -5, 10, 9, -3]
7 >>> [vec1[i]*vec2[i] for i in range(len(vec1))]
8 [8, 12, -54]
其它示例
相关文章
相关标签/搜索