三、Python-列表

三、Python-列表
一、序列:是一塊用于存放多個值的連續內存空間,并且按一定順序排列,可以通過索引取值
  • 索引:從左到右的索引從0開始依次增加的正整數;從右到左的索引為-1開始的復數
  • 切片(分片):一中獲取序列中的元素的方法;
sname[start:end:step]--sname:序列名;start:起始值;end:結束值(不包括);step:步長
  • 序列相加:兩個序列可以相加(只能同類型序列:列表+列表,元組+元組,字符串+字符串),被加的序列排在原來的序列后面
  • 乘法:序列的乘法實際上就是把一個序列中的元素復制幾次
  • 檢查某個元素是否是序列的成員:print("姚明" (not) in nba)---判斷姚明(不)在nba列表中
len也能計算字符串的長度
  • 計算序列的長度:print("列表的長度為:"len(nba))---計算nba序列的長度
  • 最大值:print(max(number))---返回序列中的最大值(只能用在序列中為數字型時)
  • 最小值:prin(min(number))---返回序列中的最小值(只能用在序列中為數字型時)
list():把序列轉換為列表(數字和字符串都能轉換)       str():序列轉換為字符串
sum():計算序列中元素和                 sorted():給序列中元素排序
reversed():反轉序列中元素              ??? enumerate():把序列組合為一個索引序列
二、列表:列表中可以放:整數,實數,布爾值,字符串,序列,對象
  • 列表的創建和刪除:一般不把不通類型的數據放在同一個列表中(提高可讀性)
    • 賦值運算符直接創建:listname = [元素1,元素2,…]---用英文狀態的“,”隔開,元素數量無限制
    • 創建空列表:a = []---創建一個名為a的空列表
    • 創建數字列表:list(range(2,21,2))---2—21之間的偶數(數據全部都為數字)
    • del listname------刪除列表(很少用)
  • 訪問列表元素:獲取列表中的內容
    • print() 索引 切片
  • 遍歷列表:把列表中的元素全部預覽一遍
    • for循環實現:只能輸出元素與的值
      • for iten in listname: ---item用于保存獲取到的元素,listname為列表名
    • for循環和enumerate:即顯示索引又顯示元素
      • for index,item in enumerate(listname): ---index用于保存索引,item用戶保存獲元素的值
  • 添加元素:+運算符添加(效率低)
    • append:在元素列表末尾添加元素
      • listname.append(obj) ---listname為被添加的列表名;obj為要添加的對象
    • inert:用于在列表中間插入一個對象
      • listname.inert(num,obj) ---num為要插入的位置的索引號;obj為要插入的對象
    • extend:用于把一個列表添加到另一個列表的末尾
      • listname.extend(seq) ---listname為原列表名,seq為被添加的列表
  • 修改元素:只需要通過索引獲取該元素,然后再為其重新賦值
    • verser[2]="…" ---verser為列表名,2為要修改的元素的索引號
  • 刪除列表元素:
    • 根據索引號刪除:必須知道要刪除的元素的索引號(索引號可為正數或負數)
      • del verser[-1] ---刪除verser列表中索引為-1的元素
    • 根據元素值來刪除:不確定其位置的元素(根據元素值來刪除,最好先判斷該元素是否在列表)
      • if verser.count(value)>0 ---判斷value元素是否在列表verser中
        • verser.remove(value) ---刪除verser列表中的value值
  • 對列表進行統計計算:
    • count:獲取指定元素在列表中出現的次數(精確匹配,不能只是元素的一部分)
      • listname.count(obj) ---統計元素obj在列表listname中出現的次數
    • index:獲取指定元素在列表中首次出現的位置(索引)(被統計的元素只能精確匹配)
      • listname.index(obj) ---統計obj在列表中首次出現的位置
    • sum:統計數字列表的元素和
      • sum(iterable,start) ---iterable為要計算的列表名,start為系統統計結果要加的值(默認為0)
  • 對列表進行排序:
    • sort:對元素排序,排序后原列表中的元素順序將發生改變
      • listname.sort(key=None,reverse=False) ---key表示指定一個從每個元素中提取的一個比較鍵(key=str.lower表示在排序時不區分大小寫);reverse為True表示降序,False為升序,默認為升
    • sorted:排序后,源列表的元素順序不變
      • sorted(itemble,key=None,reverse=False) ---itemble表示要排序的列表名稱
三、列表推導式:可以快速生成一個列表,或者根據某個列表生成滿足指定需求的列表
生成指定范圍的數字列表:list = [Expression for var range]    
list = [i*i for i in range(2,11,2)] ---生成0-10的偶數的平方
list:生成列表的名稱;         expression:表達式,計算型列表的元素
var:循環變量             range:采用range()函數生成range對象
根據列表生成指定需求的列表:newlist = [expression for var in list]
price = [1200,5300,2988,6200,1998,8888]
sale = [int(x*0.5) for x in price]
print('原價格:',price)
print('五折價格:',sale)
newlist:表示新生成的列表名; list:用于生成新列表的源列表名
從列表中選擇符合條件的元素組成型列表:newlist = [expression for var in list if condition]
price = [1200,5330,2988,6200,1998,8888]
sele = [z for z in price if z >5000]
print('原列表:',price)
print("高于5000的:",sale)
condition:條件表達式,用于指定篩選的條件
四、二維列表的使用:二維列表就是包含列表的列表,一個列表的每個元素都是一個列表
直接定義二維列表:listname=[元素1,元素2…],[元素11,元素12…],[元素21,元素22…],…]
使用嵌套的for循環創建:      
room = []
for i in range(1,5): #樓層
room.append([]) #添加一個空列表
for j in range(1,8): #每一層的房間數
room[i-1].append(i*1000+100+j)
print(room)
使用列表推導式創建:(能使用推導式盡量使用推導式)
eg:room=[[i*1000+100+j for j in range(1,8)] for i in range(1,5)]
print(room)
eg:?  
str1 = "千山鳥飛絕"
str2 = "萬徑人蹤滅"
str3 = "孤舟蓑笠翁"
str4 = "獨釣寒江雪"
list1 = [list(str1),list(str2),list(str3),list(str4)]
print("--橫版輸出--")
print()
for i in range(4): #循環的行數
for j in range(5): #循環每一行的字
if j == 4: #一行中的最后的一個字
print(list1[i][j]) #換行輸出
else:
print(list1[i][j],end="") #不換行輸出
print()
print()
print("--豎版--")
print()
list1.reverse() #排序(逆序)
for i in range(5): #循環每一行中的每一個
for j in range(4): #每一行
if j == 3:
print(list1[j][i]) #換行輸出
else:
print(list1[j][i],end='')
?
posted on 2019-04-18 10:38 dameon 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/dameon/p/10728173.html

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

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

相關文章

使用基本ACL規則限制用戶登錄

要求:配置ACL 2005規則,限制vty 0 4界面只允許IP地址為192.168.1.8的用戶和10.10.100.0/24網段的用戶登錄設備。 配置如下: system-view acl 2005 rule permit source 192.168.1.8 0 //允許IP地址為192.168.1.8的用戶登錄設備 rule permit s…

pandas 入門(2)

from pandas import Series, DataFrame, Index import numpy as np from numpy import nan as NAobj Series(range(3), index[a, b, c]) print(obj) index obj.index print(index) print(index[1:]) # index[1] d index對象時不可以被修改的 為了安全和共享index Index(n…

如何在Outlook 2013中管理附件

There comes a time, job-hunting, or sharing photos with older family members, where you may need to send stuff the old fashioned way – as an email attachment. If you email at work, it may be a part of your email repertoire. 有時需要找工作,與年長…

了解cron以及使用cron定時備份MySQL

cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由于Cron 是Linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務: /sbin/service crond start //啟動服務 /sbin/service crond stop //關…

ef 并發控制

ef 并發控制 ef 并發控制 什么是并發?并發分悲觀并發和樂觀并發。悲觀并發:比如有兩個用戶A,B,同時登錄系統修改一個文檔,如果A先進入修改,則系統會把該文檔鎖住,B就沒辦法打開了,只有等A修改完…

C#實現寫入文本文件內容功能

private void write_txt(string str1, string str2, string str3)02{03System.DateTime currentTime System.DateTime.Now;04string strYMD currentTime.ToString("d");05string FILE_NAME "MyFileSend" strYMD ".txt";//每天按照日期建立一…

如何在Windows上設置BitLocker加密

BitLocker is a tool built into Windows that lets you encrypt an entire hard drive for enhanced security. Here’s how to set it up. BitLocker是Windows內置的工具,可用于加密整個硬盤驅動器以增強安全性。 設置方法如下。 When TrueCrypt controversially …

Java字節碼方法表與屬性表深度剖析

方法表: 在上一次咱們已經分析到了字段信息了,如下: 緊接著就是方法相關的信息了: 而它展開之后的結構為: 所以往后數2個字節,看一下方法的總數: 3個方法,可咱們只定義了兩個方法呀&…

最大連續子數組和與JUnit測試

【題目】最大連續子數組和(最大子段和) 背景 問題: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]a[i1]…a[j]的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義…

筆記本電源適配器為什么總壞_為什么某些交流適配器和電源會發出嘯叫聲?

筆記本電源適配器為什么總壞Most of the time our AC adapters and power supplies tend to be quiet, but what does it mean when one makes a whining noise? Should you be concerned? Today’s SuperUser Q&A post has the answers to a worried reader’s question…

4412 字符類設備的設備號

一、靜態申請字符類設備號 字符類設備函數在文件"include/linux/fs.h"中內核提供了三個函數來注冊一組字符設備編號,這三個函數分別是 register_chrdev_region()alloc_chrdev_region()register_chrdev()register_chrdev_region()是提前知道設備的主次設備…

monogdb操作system.*權限

mongodb roles system.roles集合刪不掉 當你自定義了特權(角色): db.createRole({role: "dropSystemViewsAnyDatabase",privileges: [{actions: [ "dropCollection" ],resource: { db: "", collection: "system.roles" }}],roles: []}…

如何發現假庫存照片(并將合適的人歸于屬性)

Spammers and other unscrupulous advertisers are always looking for new ways to get you click on their pages. One of the latest tactics is to steal popular and useful stock images—like the kind you sometimes see in news articles—and re-upload them elsewhe…

Mysql Hunter

一、簡介自動化實施的過程中,我們通常都面臨一個棘手的問題:數據的準備和恢復。即在成功執行一個自動化用例時,我們可能需要一定的數據前提,而為了使得整個前提不至于被其他的用例破壞,以至于我們有時不得不在自動化用…

C6748_UART(5) - UART寄存器

1、FIFO控制寄存器(FCR)RXFIFTL:接收FIFO中斷觸發(當FIFO中的數據量剛到達所要求(trigger level)的時候會產生中斷);DMAMODE1:如果FIFO使能的話此位可以使能DMA模式。TXCLR:發送FIFO清除。RXCLR&#xff1a…

如何在Windows 10上限制Wi??ndows Update的下載帶寬

Windows 10’s Fall Creators Update gives you more control of Windows Update’s downloads and uploads. You can now set a download bandwidth limit, ensuring Windows Update won’t hog your Internet connection with its background downloads. Windows 10的Fall Cr…

Elasticsearch嵌套查詢

2019獨角獸企業重金招聘Python工程師標準>>> 一、背景 最近在做基于宴會廳檔期的商戶搜索推薦時,如果用傳統平鋪式的mapping結構,無法滿足需求場景,于是用到了Elasticsearch支持的Nested(嵌套)查詢。 二、普通對象與嵌套對象的索引…

寫給深圳首期Python自動化開發周未班的信

你是否做了正確的決定? 深圳首期周未班的同學們大家好,我是Alex, 老男孩教育的聯合創始人,Python項目的發起人,51CTO學院連續2屆最受學員喜愛的講師,中國最早一批使用Python的程序員,當然還有一堆頭銜&…

網站跳出率的相關要點介紹

今天小峰seo博客和大家一起來探討關于“網站跳出率的相關要點”,這里大體是分為三大要點:首先是進入的流量渠道,然后就是綜合流量速度和內容的質量問題,細的來說就是我們的網站進來的用戶是搜索什么關鍵詞來的是通過百度還是搜狗或…

如何使用PowerShell提升開發效率(以Windows Embedded CE為例)

簡介 本文講述如何使用Powershell通過RAPI來控制Windows Embedded CE和Windows Mobile設備。 緣由 我入行的時候是做AS400 RPG和UNIX C開發的,所有開發環境都是字符界面,因此習慣了vigrepmake的開發模式。后來開始做Windows的開發,開始也不大…