老齊python-基礎3(列表)

1、定義一個列表

>>> a = []        #創建一個空列表
>>> type(a)      #查看數據類型
<class 'list'>   
>>> bool(a)      #判斷非空
False
>>> print(a)
[]
>>> a = ['2',3,'tajzhang',]
>>> a
['2', 3, 'tajzhang']
>>> type(a)
<class 'list'>
>>> bool(a)
True
>>> print(a)
['2', 3, 'tajzhang']

??? 列表是個筐,什么都能裝

>>> b = ["hello",a]
>>> b
['hello', ['2', 3, 'tajzhang']]

?

2、索引和切片

與字符串方式相同

>>> a = ['2','3','python.org']
>>> a[0]
'2'
>>> a[2]
'python.org'
>>> a[:2]
['2', '3']
>>> a[1:]
['3', 'python.org']
>>> a[2][7:13]  #兩次切片
'org'
>>> a.index('2') #索引
0
>>> a[-1]
'python.org'
>>> a[-3:-1] #從右向左截取
['2', '3']
>>> alst = [1,2,3,4,5,6]
>>> alst[:] #顯示列表所有
[1, 2, 3, 4, 5, 6]
>>> alst[::2] #步長為2顯示列表
[1, 3, 5]
>>> alst[::1]
[1, 2, 3, 4, 5, 6]

?

3、反轉

??? 編程中比較常用

>>> alst = [1,2,3,4,5,6]
>>> alst[::-1]                  #反轉
[6, 5, 4, 3, 2, 1]
>>> alst
[1, 2, 3, 4, 5, 6]
>>> lang ='python'
>>> lang[::-1]          #字符串同樣支持反轉
'nohtyp'
>>> alst[::-2]   
[6, 4, 2]
>>> list(reversed(alst))    #反轉函數
[6, 5, 4, 3, 2, 1]
>>> list(reversed("abcd"))
['d', 'c', 'b', 'a']

4、操作列表

??? 4.1基本操作:與字符串操作方式基本相同

??????? len

??????? +

??????? *

??????? in

??????? max()和min()

>>> lst = ['python','java','c++']
>>> len(lst)
3
>>> alst=[1,2,3,4,5,6]
>>> lst + alst
['python', 'java', 'c++', 1, 2, 3, 4, 5, 6]
>>> lst * 3
['python', 'java', 'c++', 'python', 'java', 'c++', 'python', 'java', 'c++']
>>> "python" in lst       #是否存在
True
>>> "c#" in lst      
False
>>> alst = [1,2,3,4,5,6]
>>> max(alst)       #最大值
6
>>> min(alst)       #最小值
1
>>> min(lst)
'c++'

??? 4.2修改列表元素

>>> cities = ["nanjing","zhejiang"]
>>> cities[1] = "suzhou"
>>> cities
['nanjing', 'suzhou']
>>> cities.append("shanghai")
>>> cities
['nanjing', 'suzhou', 'shanghai']
>>> cities[len(cities):] = ["wuxi"]
>>> cities
['nanjing', 'suzhou', 'shanghai', 'wuxi']

?

5、列表常用函數

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

??? 常用:append、count、extend、index、insert、pop、remove、reverse、sort

>>> la = [1,2,3]
>>> lb = ['tajzhang','python']
>>> la.extend(lb)             #列表合并
>>> la
[1, 2, 3, 'tajzhang', 'python']
>>> lb
['tajzhang', 'python']
>>> b = "abx"
>>> la.extend(b)              #將字符串加入列表
>>> la
[1, 2, 3, 'tajzhang', 'python', 'a', 'b', 'x']

>>> la = [1,2,3,'a','b','c']
>>> lb = ['qiwair','python']
>>> la[len(la):] = lb #不同實現方法
>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwair', 'python']

??? 判斷對象是否是可迭代的

>>> astr = "python"
>>> hasattr(astr,'__iter__')
True
>>> hasattr(3,'__iter__')
False

??? 5.1 append()和extend()區別

>>> lst = [1,2,3]
>>> lst.append(["tajzhang","blog"])
>>> lst
[1, 2, 3, ['tajzhang', 'blog']]
>>> len(lst)
4
>>> lst2 = [1,2,3]
>>> lst2.extend(["tajzhang","blog"])
>>> lst2
[1, 2, 3, 'tajzhang', 'blog']
>>> len(lst2)
5

??? 5.2 count 顯示列表中元素重復出現次數的方法

>>> la = [1,2,1,1,3]
>>> la.count(1)
3

??? 5.3 index 顯示元素索引位置,元素不存在就報錯

>>> la = [1,2,3,'a','b','c','tajzhang','python']
>>> la.index(3)
2

??? 5.4 inster 任意位置追加元素

>>> all_user = ['tajzhang','python','blog']
>>> all_user.insert(0,'github')
>>> all_user
>>> a = [1,2,3]
>>> a.insert(9,666)   #索引超過最大值則追加到最后
>>> a
[1, 2, 3, 666]

??? 5.5 remove和pop

?????? remove存在列表中即刪除,不存在列表中報錯,建議配合if判斷使用

>>> all_user
['github', 'tajzhang', 'python', 'blog']
>>> if "python" in all_user:all_users.remove("python")print(all_user)else:print("'python' is not in all_users")

??? pop

>>> all_user
['github', 'tajzhang', 'python', 'blog']
>>> all_user.pop()
'blog'
>>> all_user
['github', 'tajzhang', 'python']
>>> all_user.pop(1)
'tajzhang'
>>> all_user
['github', 'python']
>>> all_user.pop(3)         #超出索引報錯
Traceback (most recent call last):File "<pyshell#117>", line 1, in <module>all_user.pop(3)
IndexError: pop index out of range

??? 5.6 reverse 倒序

>>> a = [3,5,1,6]
>>> a.reverse()
>>> a
[6, 1, 5, 3]
>>> a = [1,2,3,4,5]
>>> b = reversed(a)
>>> b
<list_reverseiterator object at 0x1023aee48>
>>> list(b)               #reverse不能實現反向迭代,可使用reversed實現
[5, 4, 3, 2, 1]
>>> a
[1, 2, 3, 4, 5]
>>> a.reverse()

??? 5.7 sort? sorted()

>>> a
[1, 2, 3, 4, 5]
>>> a.reverse()
>>> a = [6,1,5,3]
>>> a.sort()
>>> a
[1, 3, 5, 6]
>>> a.sort(reverse=True)   #反向排序
>>> a
[6, 5, 3, 1]
>>> lst = ["python","java","c","pascal","basic"]
>>> lst.sort(key=len)            #根據key 排序類似excel
>>> lst
['c', 'java', 'basic', 'python', 'pascal']

?

?

6、比較字符串和列表

??? 6.1相同點

??????? 兩者都屬于序列類型,不管是組成列表的元素,還是組成字符串的字符,都可以從左向右,依次用0,1,2...(-1,-2,3...)這樣的方式建立索引,都可以使用切片

??? 6.2區別

??????? 最大區別,列表是可以隨意修改的,字符串要重新賦值才可以

??? 6.3多維列表

??????? 字符串中每個元祖只能是字符類型,列表中可以是任何類型的數據

7、列表和字符串轉化

??? 7.1 str.split()

??? 7.2 "[sep]".join(list)

?

8、更pythonic的多值替換方法

lst2 = ["python",22,22,"python","linux","python","ubuntu"]
lst4 = ['python2' if x == 'pyhton' else x for x in lst2]  #多值替換
print(lst4)lst3 = list(set(lst2))
print(lst3)lstcache1 = [22,'linux']
lst5 = ['c++' if x in lstcache1 else x for x in lst3]  #去除相同元素,多元素替換同一個元素
print(lst5)lstcache2 = {'python':'pythonIC','c++':'c#'}
lst6 = [lstcache2[x] if x in lstcache2 else x for x in lst5]  #根據字典映射關系替換
print(lst6)

?

轉載于:https://www.cnblogs.com/Taj-Zhang/p/7474206.html

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

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

相關文章

UWP 響應鍵盤組合快捷鍵

方法1&#xff1a;響應Ctrl&#xff1f;快捷鍵 首先在load事件或者keydown事件內注冊事件 public MainPage(){this.InitializeComponent();// Register for accelerator key events used for button hotkeysWindow.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated Dis…

NDK 開發實戰 - 封裝 java 層 sdk 模型

關于 Ndk 開發&#xff0c;網上的資料比較少&#xff0c;這方面的書籍也不多。因為其涉及的知識非常廣&#xff0c;時常有哥們問我&#xff0c;東西那么多到底要學到什么程度呢&#xff1f;到底應該怎么學&#xff1f;這期我給大家來做一個簡單回答&#xff0c;首先單純站在 An…

JDK+Tomcat搭建JSP運行環境--JSP基礎

一、搭建JSP運行環境之前需要了解的基本知識 配置JSP運行環境之前&#xff0c;我們需要了解JSP的運行機制。只有了解JSP運行機制后&#xff0c;我們才能知道為什么要搭建JSP運行環境?如何去搭建JSP運行環境?為什么要配置Tomcat、JDK&#xff1f; JSP(Java Sever Page)即Java服…

Docker容器的自動化監控實現

本文由 網易云 發布。 近年來容器技術不斷成熟并得到應用。Docker作為容器技術的一個代表&#xff0c;目前也在快速發展中&#xff0c;基于 Docker的各種應用也正在普及&#xff0c;與此同時 Docker對傳統的運維體系也帶來了沖擊。我們在建設運維平臺的過程中&#xff0c;也需…

robotframework 常用關鍵字

標準庫 第三方庫 其他庫轉載于:https://www.cnblogs.com/Chamberlain/p/10729054.html

身份證的驗證

var Wi [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加權因子 var ValideCode [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份證驗證位值.10代表X function checkIdcard(idCard) { idCard trim(idCard);//去掉字符串頭尾空格 if (idCard.length 15…

人工智能實戰小程序之語音_前端開發

1. 人工智能實戰小程序之準備工作 2. 人工智能實戰小程序之語音_前端開發 今天這部分主要講小程序前端功能的開發由于我偏后端&#xff0c;css是我的弱項&#xff0c;可能很多人和我一樣開發小程序不知道如何下手&#xff0c;希望本篇文章對你有幫助我的學習路線是&#xff1a;…

當TFS/VSTS遇上Power BI

引言眾所周知&#xff0c;要對TFS進行深入的圖表分析&#xff0c;往往需要依賴于SQL Server Analysis Service和SQL Server Reporting Service。雖然隨著TFS對敏捷項目的支持&#xff0c;內置了諸如累積流圖、燃盡圖等快捷圖表&#xff1b;并且在最新的版本中還可以在儀表盤和查…

HashMap深度解析:一文讓你徹底了解HashMap

寫在前面HashMap是Map族中最為常用的一種&#xff0c;也是 Java Collection Framework 的重要成員。本文首先給出了 HashMap 的實質并概述了其與 Map、HashSet 的關系&#xff0c;緊接著給出了 HashMap 在 JDK 中的定義&#xff0c;并結合源碼分析了其四種構造方式。最后&#…

Bzoj3628: [JLOI2014]天天酷跑

3628: [JLOI2014]天天酷跑 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 121 Solved: 44[Submit][Status][Discuss]Description 在游戲天天酷跑中&#xff0c;最爽的應該是超級獎勵模式了吧&#xff0c;沒有一切障礙&#xff0c;可以盡情的吃金幣&#xff0c;現在請你控制…

python_線程、進程和協程

線程 Threading用于提供線程相關的操作&#xff0c;線程是應用程序中工作的最小單元。 1 #!/usr/bin/env python2 #codingutf-83 __author__ yinjia4 5 6 import threading,time7 8 def show(arg):9 time.sleep(2) 10 print(線程: str(arg)) 11 12 for i in range(…

AppDelegate瘦身之服務化

有沒有覺得你的AppDelegate雜亂無章&#xff1f;代碼幾百行上千行&#xff1f;集成了無數的功能&#xff0c;如推送、埋點、日志統計、Crash統計等等&#xff0c;感覺AppDelegate無所不能。 來一段一般的AppDelegate代碼&#xff0c;來自網上一篇文章&#xff1a; UIApplicatio…

第四章:手機平板要兼顧-探究碎片

碎片是什么&#xff1f; 碎片&#xff08;Fragment&#xff09;是一種可以嵌入在活動&#xff08;Activity&#xff09;中的 UI 片段&#xff0c;它能讓程序更加合理和充分的利用大屏幕的空間&#xff0c;因而在平板上應用的非常廣泛。 碎片的使用方式 靜態嵌入動態加載碎片和活…

Android Studio 3.4增可視化資源管理工具 可管理和預覽項目資源

經過6個月的開發時間&#xff0c;網絡大廠17日發布了最新版的App開發IDE Android Studio 3.4&#xff0c;現在就能夠下載使用&#xff0c;除了有超過300個錯誤修護和穩定度增強之外&#xff0c;在開發、建置和測試App階段&#xff0c;都推出了一些小的新功能和工具&#xff0c;…

Python安裝、使用MySQL數據庫

本機安裝的python版本為Python 2.7(win32 bit) 從http://www.codegood.com/archives/129下載MySQL-python-1.2.3.win32-py2.7.exe&#xff0c;點擊安裝 如果是win版還需要下載&#xff1a;libguide40.dll 和 libmmd.dll這兩個文件&#xff0c;下載后放入到到C:\WINDOWS/syste…

pytorch 安裝

安裝pytorch時&#xff0c;官網不能選擇版本。原以為是瀏覽器問題&#xff0c;換了幾個瀏覽器都不行。 后來FQ之后&#xff0c;就能選擇版本了。 sudo pip install torch torchvision轉載于:https://www.cnblogs.com/rabitvision/p/8908757.html

《JavaScript 高級程序設計》精讀筆記

本系列讀書筆記是我通過學習《Javascript 高級程序設計》第3版時結合自己的理解、概括、精煉然后加以一定的拓展&#xff0c;總結而來的&#xff0c;非常適合具有一定基礎&#xff0c;同時又想把 JS 基礎學更好的童鞋&#xff0c;當然更希望得到大家的反饋于建議&#xff0c;比…

struts2實現文件查看、下載

CreateTime--2017年9月7日10:25:33 Author:Marydon struts2實現文件查看、下載 1.界面展示 <a style"color: #199ED8;" target"_blank" href"<c:url value"/telemedicine/reseCons/viewFile.do?fileName201516529IO.jpg"/>"…

css文本設置

常用的應用文本的css樣式&#xff1a; color 設置文字的顏色&#xff0c;如&#xff1a; color:red; font-size 設置文字的大小&#xff0c;如&#xff1a;font-size:12px; font-family 設置文字的字體&#xff0c;如&#xff1a;font-family:微軟雅黑; font-style 設置字體…

關鍵字static

原文出處&#xff1a;http://cmsblogs.com/ 『chenssy』 一、 static代表著什么 在Java中并不存在全局變量的概念&#xff0c;但是我們可以通過static來實現一個“偽全局”的概念&#xff0c;在Java中static表示“全局”或者“靜態”的意思&#xff0c;用來修飾成員變量和成員方…