一起学Python:列表介绍
列表介紹
想一想:
前面學習的字符串可以用來存儲一串信息,那么想一想,怎樣存儲咱們班所有同學的名字呢?定義100個變量,每個變量存放一個學生的姓名可行嗎?有更好的辦法嗎?答:
列表<1>列表的格式
變量A的類型為列表
namesList = ['xiaoWang','xiaoZhang','xiaoHua']比C語言的數組強大的地方在于列表中的元素可以是不同類型的
testList = [1, 'a']
<2>打印列表
demo:
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
print(namesList[2])
結果:
xiaoWang xiaoZhang xiaoHua列表的循環遍歷
1. 使用for循環
為了更有效率的輸出列表的每個數據,可以使用循環來完成
demo:
namesList = ['xiaoWang','xiaoZhang','xiaoHua'] for name in namesList:print(name)結果:
xiaoWang xiaoZhang xiaoHua2. 使用while循環
為了更有效率的輸出列表的每個數據,可以使用循環來完成
demo:
namesList = ['xiaoWang','xiaoZhang','xiaoHua']length = len(namesList)i = 0while i<length:print(namesList[i])i+=1結果:
xiaoWang xiaoZhang xiaoHua列表的相關操作
列表中存放的數據是可以進行修改的,比如"增"、"刪"、"改""
<1>添加元素("增"append, extend, insert)
append
通過append可以向列表添加元素
demo:
#定義變量A,默認有3個元素 A = ['xiaoWang','xiaoZhang','xiaoHua']print("-----添加之前,列表A的數據-----") for tempName in A:print(tempName) #提示、并添加元素 temp = input('請輸入要添加的學生姓名:') A.append(temp)print("-----添加之后,列表A的數據-----") for tempName in A:print(tempName)結果:
extend
通過extend可以將另一個集合中的元素逐一添加到列表中
> a = [1, 2]>>> b = [3, 4]>>> a.append(b)>>> a [1, 2, [3, 4]]a.extend(b)>>> a [1, 2, [3, 4], 3, 4]insert
insert(index, object) 在指定位置index前插入元素object
> a = [0, 1, 2]>>> a.insert(1, 3)>>> a [0, 3, 1, 2]<2>修改元素("改")
修改元素的時候,要通過下標來確定要修改的是哪個元素,然后才能進行修改
demo:
#定義變量A,默認有3個元素A = ['xiaoWang','xiaoZhang','xiaoHua']print("-----修改之前,列表A的數據-----") for tempName in A:print(tempName) #修改元素A[1] = 'xiaoLu'print("-----修改之后,列表A的數據-----") for tempName in A:print(tempName)結果:
-----修改之前,列表A的數據----- xiaoWang xiaoZhang xiaoHua -----修改之后,列表A的數據----- xiaoWang xiaoLu xiaoHua<3>查找元素("查"in, not in, index, count)
所謂的查找,就是看看指定的元素是否存在
in, not in
python中查找的常用方法為:
in(存在),如果存在那么結果為true,否則為falsenot in(不存在),如果不存在那么結果為true,否則falsedemo
#待查找的列表 nameList = ['xiaoWang','xiaoZhang','xiaoHua'] #獲取用戶要查找的名字 findName = input('請輸入要查找的姓名:') #查找是否存在 if findName in nameList:print('在字典中找到了相同的名字') else:print('沒有找到')結果1:(找到)
結果2:(沒有找到)
說明:
in的方法只要會用了,那么not in也是同樣的用法,只不過not in判斷的是不存在index, count
index和count與字符串中的用法相同
> a = ['a', 'b', 'c', 'a', 'b']>>> a.index('a', 1, 3)注意是左閉右開區間
Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: 'a' is not in list > a.index('a', 1, 4)3 > a.count('b')2 > a.count('d')0<4>刪除元素("刪"del, pop, remove)
類比現實生活中,如果某位同學調班了,那么就應該把這個條走后的學生的姓名刪除掉;在開發中經常會用到刪除這種功能。
列表元素的常用刪除方法有:
del:根據下標進行刪除pop:刪除最后一個元素remove:根據元素的值進行刪除demo:(del)
movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']print('------刪除之前------') for tempName in movieName:print(tempName) del movieName[2]print('------刪除之后------') for tempName in movieName:print(tempName)結果:
------刪除之前------ 加勒比海盜 駭客帝國 第一滴血 指環王 霍比特人 速度與激情 ------刪除之后------ 加勒比海盜 駭客帝國 指環王 霍比特人 速度與激情demo:(pop)
movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']print('------刪除之前------') for tempName in movieName:print(tempName)movieName.pop()print('------刪除之后------') for tempName in movieName:print(tempName)結果:
------刪除之前------ 加勒比海盜 駭客帝國 第一滴血 指環王 霍比特人 速度與激情 ------刪除之后------ 加勒比海盜 駭客帝國 第一滴血 指環王 霍比特人demo:(remove)
movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']print('------刪除之前------') for tempName in movieName:print(tempName)movieName.remove('指環王')print('------刪除之后------') for tempName in movieName:print(tempName)結果:
------刪除之前------ 加勒比海盜 駭客帝國 第一滴血 指環王 霍比特人 速度與激情 ------刪除之后------ 加勒比海盜 駭客帝國 第一滴血 霍比特人 速度與激情<5>排序(sort, reverse)
sort方法是將list按特定順序重新排列,默認為由小到大,參數reverse=True可改為倒序,由大到小。
reverse方法是將list逆置。
> a = [1, 4, 2, 3]>>> a [1, 4, 2, 3]a.reverse()>>> a [3, 2, 4, 1]a.sort()>>> a [1, 2, 3, 4]a.sort(reverse=True)>>> a [4, 3, 2, 1]列表的嵌套
1. 列表嵌套
類似while循環的嵌套,列表也是支持嵌套的
一個列表中的元素又是一個列表,那么這就是列表的嵌套
schoolNames = [['北京大學','清華大學'],['南開大學','天津大學','天津師范大學'],['山東大學','中國海洋大學']]2. 應用
一個學校,有3個辦公室,現在有8位老師等待工位的分配,請編寫程序,完成隨機的分配
#encoding=utf-8import random # 定義一個列表用來保存3個辦公室offices = [[],[],[]] # 定義一個列表用來存儲8位老師的名字 names = ['A','B','C','D','E','F','G','H']i = 0for name in names:index = random.randint(0,2) offices[index].append(name)i = 1for tempNames in offices:print('辦公室%d的人數為:%d'%(i,len(tempNames)))i+=1for name in tempNames:print("%s"%name,end='')print("\n")print("-"*20)原文鏈接:做最專業最懂你的編程微刊技術分享平臺,提供你最需要的開發學習資源。 我們專注于編程開發技術的學習與交流,我們堅持,每天進步一小步,人生進步一大步!關注【編程微刊】,與我們一起學習進步。https://www.jianshu.com/u/05f416aefbe1
轉載于:https://www.cnblogs.com/wangting888/p/9701834.html
總結
以上是生活随笔為你收集整理的一起学Python:列表介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白云机场停车费一天要多少钱,广州白云机场
- 下一篇: python变量和字符串