python(16)-列表list,for循環

高級數據類型--列表

  • 1列表定義
  • 2列表中取值
  • 3列表的增,刪,查,改
    • 3.1修改指定位置的數據
    • 3.2確定指定元素的索引
    • 3.3增加操作
    • 3.4刪除操作
    • 3.5 元素是否存在與列表中 in
    • 3.6在指定索引位置插入元素
  • 4列表的數據統計
  • 5列表排序
  • 6列表的循環遍歷-for
  • 7多維度list 的切片操作
  • 8列表的加法-鏈接

非數值類型:列表,元祖,字典,字符串,都是Python中的高級變量類型
Python中的非數值類型都支持一些共同的操作:都是一個序列,也可以理解為容器,用來裝東西用

列表數據類型的應用場景:存儲多個相同類型的數據,通過迭代遍歷,針對每一項元素,執行相同的操作
注意: 列表中可以存不同類型的數據,但是一般不這么用。
在這里插入圖片描述
Python中的列表由于其靈活的操作,既可實現堆棧操作(先進后出),還可實現隊列操作(先進先出)

1列表定義

列表-在其他語言中等價于數組,用于存儲一串信息
記錄三個人的名字,可以 用三個字符串變量存儲,也可以用一個列表存儲多個變量

name_list=[“zhangsan”,“lisi”,“wangwu”]

用[]定義列表,其中元素用逗號,分隔

2列表中取值

利用索引取出列表中的元素,索引超出范圍,程序會報錯

name_list[1]

zhangsan

3列表的增,刪,查,改

列表的常用操作包括 :增,刪,查,改。可以通過函數方法兩種方式來執行常用操作:函數通過函數名()調用,方法通過變量名.方法名調用

3.1修改指定位置的數據

name_list[1]=‘lisisi’

3.2確定指定元素的索引

name_list.index(“lisi”)

使用index方法需要注意,如果傳遞的數據不在列表中,程序會報錯

3.3增加操作

1.向列表的末尾追加數據

name_list.append(“wangxiaoer”)

2.在列表的指定索引位置添加一個數據(添加在0,1之間)

name_list.insert(1,“xiaomeiemi”)

3.將可以迭代的數據增加到當前對象的末尾

temp_list=[“sunwukong”,“zhuerge”,“sanshidia”]
name_list.extend(temp_list)

3.4刪除操作

1.刪除指定的數據,當列表中有多個“zhangsan”,會刪掉一個第一個指定數據

name_list.remove(“wangwu”)

2.pop默認可以將列表中最后一個元素刪除

name_list.pop()

pop方法可以指定索引,刪除元素,同時可以將彈出的元素返回

a=name_list.pop(3)

3.claer方法將列表清空呢

name_list.clear()

name_list=[]

Python2.7版本的編譯器中沒有這個方法偶,如果有,會將列表清空呢

4.擴展: Del 從列表中刪除數據,用于刪除指定索引的元素

del name_list[1]

del本質上是將變量從內存中刪除,如果使用del刪除了一個變量,那么后續就不能使用該變量。慎重使用

3.5 元素是否存在與列表中 in

在這里插入圖片描述

3.6在指定索引位置插入元素

list.insert(index, obj)

4列表的數據統計

數據統計操作包括一個函數一個方法

1.統計列表數據保存了多少個數據,列表數據的長度

list_len=len(name_list)
print(“列表中包含:%d”%list_len)

2.統計某個數據出現的次數

count=name_list.count(“zhangsan”)
print(“zhangsan 出現了:%d”%count)

5列表排序

新定義兩個列表:
name_list=[“zhangsan”,“lisi”,“wangwu”,“wangxiaoer”]
num_list=[6,8,4,1,10]

默認升序排序,字符串按首字母的順序a-z

name_list.sort()
num_list.sort()

降序輸出

name_list.sort(reverse=True)
num_list.sort(reverse=True)

翻轉(逆序)

name_list.reverse()
num_list.reverse()

翻轉列表一部分內容

#to reverse a part of the string in place
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4]) # This works!
a[2:4] = [0,0] # This works too.
a[2:4].reverse() # But this doesn’t work

參考資料:https://cloud.tencent.com/developer/ask/53697

索引實現列表逆序

a=[1,2,3,4,5]
a[::-1] # 為a[i:j:s]的缺省表示,i=0,j=len(a),s=-1

參考博文:https://blog.csdn.net/marraybug/article/details/85163484

lambda表達式在sort函數中的使用
假如a是一個由元組構成的列表,對該列表進行排序時,我們需要用到參數key,也就是關鍵詞,如下面代碼所示,lambda是一個匿名函數,是固定寫法;x表示匿名函數的輸入,即列表中的一個元素,在這里,表示一個元組,x只是臨時起的一個名字,你可以使用任意的名字;x[0]表示匿名函數的輸出,即元組里的第一個元素,即key = x[0];所以這句命令的意思就是按照列表中第一個元素進行排序。

a = [(‘b’, 4), (‘a’, 12), (‘d’, 7), (‘h’, 6), (‘j’, 3)]
a.sort(key=lambda x: x[0])
print(a)
#輸出
[(‘a’, 12), (‘b’, 4), (‘d’, 7), (‘h’, 6), (‘j’, 3)]

參考博文:https://www.cnblogs.com/lovewhale1997/p/11424429.html

6列表的循環遍歷-for

循環遍歷:依次從列表中獲取數據,在循環體內部對每個元素執行相同的操作。為了提高列表的遍歷效率,專門提供了迭代iteration遍歷,For能夠實現迭代遍歷。

name_list=["zhangsan","lisi","wangwu","wangxiaoer"]
# 下標迭代遍歷
for i in range(len(name_list)):print("我的名字叫:%s"%name_list[i])
# iteration遍歷, 順序的從列表中依次獲取數據,每一次循環過程中,數據都會保存在my_name
# 通過my_name這個變量中,每次在循環體內部都可以訪問當前這一次獲取到的數據
for my_name in name_list:print("我的名字叫:%s"%my_name)

優點:不需要設計計數器,也不需要對計數器進行操作

7多維度list 的切片操作

>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> a        // 沒有size,和shape方法
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[0]
[1, 2, 3]
>>> a[0][0]
1
>>> a[:2]    // 結果是一個list ,再次切片也只是對于第0維度的一個切片
[[1, 2, 3], [4, 5, 6]]
>>> a[:][0]  // 并不是想要的所有行,第0[147],想要實現這個切片操作,可以將其轉換為numpy數組再操作
[1, 2, 3]

轉換成numpy數組,拼接時沒有list.append()那么直接,需要用numpy.concatenate()進行拼接,但是這個拼接維度的數量不會增加,如果需要多增加一個維度,可以使用[array1,array2,array3]再轉tensor/array的方法進行操作。

8列表的加法-鏈接

兩個鏈表相加,實現兩個鏈表的拼接:

[1,2]+[3,4]
輸出:[1, 2, 3, 4]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習(11)-- GAN

TensorFlow (GAN) 目錄 TensorFlow (GAN)目錄1、GAN1.1 常見神經網絡形式1.2 生成網絡1.3 新手畫家 & 新手鑒賞家1.4 GAN網絡1.5 例子 1、GAN 今天我們會來說說現在最流行的一種生成網絡, 叫做 GAN, 又稱生成對抗網絡, 也…

Python外(1)--try-expect

語法: try:正常情況下執行的代碼塊 expect 錯誤類型1:(可選)錯誤類型1對應的處理方案 expect 錯誤類型2:(可選)錯誤類型2對應的處理方案 expect:剩下的錯誤類型對應的處理方案 else:(可選)沒有…

redis——數據結構和對象的使用介紹

redis官網 微軟寫的windows下的redis 我們下載第一個 額案后基本一路默認就行了 安裝后,服務自動啟動,以后也不用自動啟動。 出現這個表示我們連接上了。 redis命令參考鏈接 String 字符串結構 struct sdshdr{//記錄buf數組中已使用字節的數量int …

Python模塊(1)-Argparse 簡易使用教程

argparse 簡易使用教程1.概況2. action3. argparse 使用demo3.1 argparse 實現加法器3.2 D-Model parser1.概況 argparse是Python中用于解析命令行參數的一個模塊,可以自動生成help和usage信息;當從終端輸入的參數無效時,模塊會輸出提示信息…

深度學習--Keras總結

Keras主要包括14個模塊,本文主要對Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共計8個模塊分別展開介紹,并通過一個簡單的Bp神經網絡說明各個模塊的作用。 1. Model 包:keras.models …

redis——NOSQL及redis概述

NoSql入門概述 單機Mysql的美好時代 瓶頸: 數據庫總大小一臺機器硬盤內存放不下數據的索引(B tree)一個機器的運行內存放不下訪問量(讀寫混合)一個實例不能承受Memcached(緩存) MySql 垂直拆…

Python(17)-元組tuple

高級數據類型--元組1.元組的定義2.元組基本操作3.元組的循環遍歷4.元組的應用場景5.元組與格式化字符串6.元組與列表之間的轉換元組的最大特征就是可訪問不可改,可作為字典的鍵值,因為鍵值必須是唯一的。字符串也是不可邊類型,因此也適合做字…

深度學習(莫煩 神經網絡 lecture 3) Keras

神經網絡 & Keras 目錄 神經網絡 & Keras目錄1、Keras簡介1.1 科普: 人工神經網絡 VS 生物神經網絡1.2 什么是神經網絡 (Neural Network)1.3 神經網絡 梯度下降1.4 科普: 神經網絡的黑盒不黑1.5 Why Keras?1.6 兼容 backend 2、如何搭建各種神經網絡2.1 Regressor回歸…

阿里Java編程規約(集合)

【強制】關于 hashCode 和 equals 的處理,遵循如下規則: 1) 只要覆寫 equals,就必須覆寫 hashCode。 2) 因為 Set 存儲的是不重復的對象,依據 hashCode 和 equals 進行判斷,所以 Set 存儲的對…

Pytorch(3)-數據載入接口:Dataloader、datasets

pytorch數據載入1.數據載入概況Dataloader 是啥2.支持的三類數據集2.1 torchvision.datasets.xxx2.2 torchvision.datasets.ImageFolder2.3 寫自己的數據類,讀入定制化數據2.3.1 數據類的編寫map-style范式iterable-style 范式2.3.2 DataLoader 導入數據類1.數據載入…

阿里Java編程規約(控制語句)

【強制】在一個 switch 塊內,每個 case 要么通過 continue/break/return 等來終止,要么 注釋說明程序將繼續執行到哪一個 case 為止;在一個 switch 塊內,都必須包含一個 default 語句并且放在最后,即使它什么代碼也沒…

大數據學習(5)-- NoSQL數據庫

文章目錄目錄1.NoSQL的介紹2.NoSQL產生的原因2.1 web2.02.2 NoSQL興起原因3.NoSQL和關系數據庫的區別4.NoSQL的四大類型4.1 鍵值數據庫4.2 列族數據庫4.3 文檔數據庫4.4 圖形數據庫4.5 不同類型的NoSQL數據庫進行比較5.NoSQL的三大基石5.1 CAP5.2 base5.3 最終一致性6.從NoSQL到…

經典算法重點總結

文章目錄排序算法冒泡排序直接插入排序希爾排序直接選擇排序快速排序堆排序歸并排序總結查找算法順序查找二分查找插值查找斐波那契查找樹表查找分塊查找哈希查找總結排序算法 冒泡排序 void bubbleSort(int a[] , int n){for(int i n-1 ; i > 0 ; i--){for(int j 0 ; j …

Python(18)-字典dictionary、集合

Python高級數據類型-字典1.字典的定義2.字典的基本操作:查詢,增加,修改,獲取3.字典的統計、合并、清空4.字典的循環遍歷5.返回最大“值”對應的“鍵”6.應用場景pop(key)7.集合字典是除了列表之外最靈活的數據類型,用來描述一個物…

redis——Redis中的LRU算法改進

redis通常使用緩存,是使用一種固定最大內存的使用。當數據達到可使用的最大固定內存時,我們需要通過移除老數據來獲取空間。redis作為緩存是否有效的重要標志是如何尋找一種好的策略:刪除即將需要使用的數據是一種糟糕的策略,而刪…

redis——HyperLogLog

HyperLogLog 是一種概率數據結構,用來估算數據的基數。數據集可以是網站訪客的 IP 地址,E-mail 郵箱或者用戶 ID。 基數就是指一個集合中不同值的數目,比如 a, b, c, d 的基數就是 4,a, b, c, d, a 的基數還是 4。雖然 a 出現兩次…

機器學習知識總結系列-機器學習中的優化算法總結(1-4)

文章目錄1.梯度下降1.1批量梯度下降(BGD)1.2隨機梯度下降(SGD)1.3 小批量隨機梯度下降(MSGD)1.4 比較:1.5 動量算法(momentum)1.6 Nestrov Momentum2. 自適應方法2.1 自適應學習率算法&#xff…

Python(19)-字符串、Unicode字符串

高級數據類型--字符串、Unicode字符串1.字符串的定義2.字符串的長度、計數、Index3.字符串常用方法3.1判斷類型3.2查找和替換3.3文本對齊3.4去除空白字符.strip()4.字符串的拆分和拼接5.字符串的切片6.跨行字符串7.包含轉義字符r8.字符串的分割與連接9.Unicode字符串字符串-不變…

機器學習中的距離和損失函數

文章目錄13.1 距離度量13.2 損失函數13.1 距離度量 距離函數種類:歐式距離、曼哈頓距離、明式距離(閔可夫斯基距離)、馬氏距離、切比雪夫距離、標準化歐式距離、漢明距離、夾角余弦等常用距離函數:歐式距離、馬氏距離、曼哈頓距離…

Python(20)-高級數據類型的公共方法

高級數據類型的公共方法1內置函數2高級數據類型切片3運算符,*,in4完整的for循環公共方法是列表,元組,字典,字符串都能使用的方法1內置函數 內置函數:不需要import導入模塊,就可以直接使用的函數…