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]
其它示例
相關文章
相關標籤/搜索