欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Learning 列表的更多操作及示例代碼

 更新時(shí)間:2018年08月22日 14:06:23   作者:東南有大樹(shù)  
這篇文章主要介紹了Python Learning-列表的更多操作,需要的朋友可以參考下

遍歷列表-for循環(huán)

列表中存儲(chǔ)的元素可能非常多,如果想一個(gè)一個(gè)的訪問(wèn)列表中的元素,可能是一件十分頭疼的事。那有沒(méi)有什么好的辦法呢?當(dāng)然有!使用 for循環(huán)

假如有一個(gè)食物名單列表,通過(guò) for循環(huán) 將列表中的食物名稱(chēng)都打印出來(lái)

# 定義一個(gè)食物名單列表
foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
# 循環(huán)訪問(wèn)foods列表
for food in foods:
  print(food)

輸出:

potato  tomato  noodles  apple  pizza

for循環(huán) 將foods列表中的元素依次輸出了出來(lái)

for food in foods: 這行代碼表示將foods列表中的元素依次取出,每次次元素的值賦給變量food;本句代碼最后以冒號(hào)結(jié)尾

print(food) 本行代碼之前有四個(gè)字符的 縮進(jìn) ,表示這行代碼屬于 for food in foods: 的代碼塊

for循環(huán)每次從列表中取出一個(gè)元素后,都會(huì)進(jìn)入代碼塊中執(zhí)行一遍,即輸出元素的名稱(chēng);直到將列表所有的元素都遍歷一次后,循環(huán)停止

# 定義一個(gè)食物名單列表
foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
# 循環(huán)訪問(wèn)foods列表
for food in foods:
  print(food)
# 循環(huán)之外的代碼
print('循環(huán)已經(jīng)完畢')
print('循環(huán)已經(jīng)完畢') 的前面沒(méi)有縮進(jìn),說(shuō)明它不屬于for循環(huán)塊中的代碼;所以,當(dāng)for循環(huán)完畢后,會(huì)接著執(zhí)行下面的這句代碼

輸出:

potato

tomato

noodles

apple

pizza

循環(huán)已經(jīng)完畢

其中,變量 food 是一個(gè)臨時(shí)變量,可以隨意取名稱(chēng);不過(guò)建議取有意義的名稱(chēng),在這里用foods表示食物列表,用food表示列表中的食物,方便理解

循環(huán)也可以嵌套使用

假如小明喜歡一些食物,這些食物名稱(chēng)被存儲(chǔ)到foods1列表中;小紅喜歡另一些食物,這些食物名稱(chēng)被存儲(chǔ)到foods2中;現(xiàn)在想知道小明與小紅所喜歡的食物是否有相同的,則可用如下方式:

# 小明喜歡的食物列表 
foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
# 小紅喜歡的食物列表
foods2 = ['chocolate', 'pizza', 'maize', 'watermelon']

# 通嵌套循環(huán)尋找出兩個(gè)列表中相同的食物名稱(chēng)
for food1 in foods1:
  for food2 in foods2:
    if food1 == food2:
      print('小明和小紅共同喜歡的食物是', food1)

輸出:

小明和小紅共同喜歡的食物是 pizza

for food2 in foods2: 前面有縮進(jìn),說(shuō)明它是 for food1 in foods1: 塊中的代碼;第一外循環(huán)從小明喜歡的食物列表中依次取出食物名稱(chēng),然后進(jìn)行自身的代碼塊中;第二行代碼依次遍歷小紅喜歡的食物列表,然后進(jìn)行循環(huán)體(代碼塊),然后判斷foods1中的第一個(gè)元素與foods2中的第一個(gè)元素是否一樣,foods1中的第一個(gè)元素與foods2中的第二個(gè)元素是否一樣,……,foods1中的第一個(gè)元素與foods2中的第四個(gè)元素是否一樣,如果一樣,則執(zhí)行打印 print('小明和小紅共同喜歡的食物是', food1) ;接著判斷foods1中的第二個(gè)元素與foods2中的第1個(gè)元素是否一樣,……,foods1中的第二個(gè)元素與foods2中的第四個(gè)元素是否一樣,如果一樣,則執(zhí)行打印 print('小明和小紅共同喜歡的食物是', food1) ……直到判斷到foods1中的第五與foods2的所有元素比較一次后,嵌套循環(huán)執(zhí)行完畢

注: if 表示判斷一個(gè)結(jié)果,如果結(jié)果是真,則執(zhí)行代碼塊,如果不是真,則跳過(guò)代碼塊; == 表示判斷兩個(gè)值是否相等,如果相等返回真,如果不相等返回假。這兩個(gè)知識(shí)點(diǎn)將在后面進(jìn)行詳細(xì)探討

在寫(xiě) for 循環(huán)語(yǔ)句的時(shí)候,造成別忘記在后面加上 冒號(hào) ,循環(huán)體中的代碼千萬(wàn)別忘記添加縮進(jìn);縮進(jìn)一般是一個(gè)制表符的距離,即四個(gè)空格的距離;不過(guò),不建議將制表符與空格符混合使用

創(chuàng)建數(shù)值列表-range()

前面的列表中的元素都是字符串類(lèi)型的,列表中可以存儲(chǔ)任意對(duì)象,現(xiàn)在定義一個(gè)數(shù)值列表

numbers = [1,2,3,4,5]

如果想定義一個(gè)從1到1000的數(shù)值列表,手動(dòng)將這些數(shù)值一個(gè)一個(gè)寫(xiě)進(jìn)列表里,一點(diǎn)也不高效;可以使用函數(shù) range() 快速創(chuàng)建一系列數(shù)字

for value in range(1,6):
  print(value)

輸出:

rnage(1, 6) 會(huì)生成從1到5的數(shù)字,6表示到6的時(shí)候就停止創(chuàng)建動(dòng)作,如果想創(chuàng)建1到1000的數(shù)字,則是 range(1, 1001)

通過(guò) list() 可以將 range() 創(chuàng)建的數(shù)字轉(zhuǎn)換成列表

# 輸出range()看看
numbers = range(1,6)
print('range: ',numbers)
# 轉(zhuǎn)換成列表后,再輸出看看
numbers = list(numbers)
print('list: ',numbers)

輸出:

range: range(1, 6)  list: [1, 2, 3, 4, 5]

可以看出, range() 返回的是一個(gè) 可迭代對(duì)象 ,經(jīng)過(guò)轉(zhuǎn)換后才是一個(gè)列表對(duì)象

還可以通過(guò)指定 步長(zhǎng) ,來(lái)生成一系列偶數(shù)

numbers = range(2,21,2)
print(list(numbers))

輸出:

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

range(start, stop[, step]) 這是Python的使用說(shuō)明文檔中關(guān)于 range() 的使用說(shuō)明,start表示從哪個(gè)數(shù)字開(kāi)始,stop表示到哪個(gè)數(shù)字停止,[, step]表示步長(zhǎng),方括號(hào)表示這個(gè)參數(shù)是可選的,即可寫(xiě)可不寫(xiě)

可以在Python的IDLE中輸入 help(range) 來(lái)得到關(guān)于range()的幫助文檔

>>> help(range)

一些簡(jiǎn)單的、常用的數(shù)字列表統(tǒng)計(jì)函數(shù):

# 定義一個(gè)偶數(shù)列表
numbers = list(range(2,21,2))

# 求數(shù)值列表中最小的元素值
print(min(numbers))
# 求數(shù)值列表中最大的元素值
print(max(numbers))
# 求數(shù)值列表所有元素的和
print(sum(numbers))

輸出:

列表解析

直接看下面代碼

# 定義一個(gè)偶數(shù)列表
numbers = list(range(2,21,2))
squares = [value**2 for value in numbers]
print(squares)

輸出:

[4, 16, 36, 64, 100, 144, 196, 256, 324, 400]

for循環(huán)的這種寫(xiě)法 squares = [value**2 for value in numbers] 叫做 列表解析

首先,寫(xiě)一對(duì)中括號(hào),它表示一個(gè)列表;然后列表中分類(lèi)兩部分,第一個(gè)部分是表達(dá)式,即 value**2 ,這個(gè)表達(dá)的意思是計(jì)算一個(gè)值的乘方;第二部分是列表循環(huán),即 for value in numbers ;最終結(jié)果是將列表中的每個(gè)值都按乘方計(jì)算一次后,放入一個(gè)列表中,再賦值給變量 squares

這里需要注意的是,循環(huán)后面沒(méi)有冒號(hào),可以理解為將循環(huán)體的代碼塊精簡(jiǎn)成了一個(gè)表達(dá)式

列表切片

只獲取列表的部分元素,這樣的操作叫作 切片

切片通過(guò)列表的索引進(jìn)行操作,即從哪個(gè)索引開(kāi)始,到哪個(gè)索引結(jié)果,將這段元素取出

# 定義一個(gè)食物列表
foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza']

# 取出第二個(gè)元素到第四個(gè)元素
print(foods[1:4])

輸出:

['tomato', 'noodles', 'apple']

foods[1:4] 方括號(hào)中的1表示索引1位置,4表示索引4位置;需要注意的是,1表示從索引1開(kāi)始,而4表示到索引4就結(jié)束;也就說(shuō),索引4位置的元素不會(huì)返回;所以,這里返回的結(jié)果是從索引1到索引3的三個(gè)元素

如果省略冒號(hào)前的數(shù)字,則表示從開(kāi)始的位置取值

# 從索引0開(kāi)始,取到索引4之前的所有值
foods[:4]
如果省略冒號(hào)后的數(shù)字,則表示一直取到列表的末尾
# 從索引1開(kāi)始,一下取到列表結(jié)束的位置
foods[1:]
如果只有冒號(hào),表示取所有數(shù)據(jù)
# 取所有數(shù)據(jù)
foods[:]

還可能使用負(fù)數(shù)

# 從倒數(shù)3個(gè)元素開(kāi)始,一直取到末尾
foods[-3:]

for循環(huán)與切片的結(jié)合

# 定義一個(gè)食物列表
foods = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
# 打印第2個(gè)到第4個(gè)元素
for food in foods[1:4]:
  print(food)

輸出:

tomato  noodles  apple

關(guān)于列表的復(fù)制

先來(lái)看個(gè)例子

foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
foods2 = foods1
print(foods1)
print(foods2)

將foods1列表賦值給foods2列表,看似是一個(gè)復(fù)制動(dòng)作,但foods1與foods2實(shí)際上是一個(gè)對(duì)象

foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
foods2 = foods1
foods1.append('chocolate')
print(foods1)
print(foods2)

輸出結(jié)果:

['potato', 'tomato', 'noodles', 'apple', 'pizza', 'chocolate']  ['potato', 'tomato', 'noodles', 'apple', 'pizza', 'chocolate']
因?yàn)椋?['potato', 'tomato', 'noodles', 'apple', 'pizza'] 創(chuàng)建了一個(gè)列表對(duì)象,foods1變量與foods2變量實(shí)際存儲(chǔ)的是指向 ['potato', 'tomato', 'noodles', 'apple', 'pizza'] 的一個(gè)引用,所以,修改foods1后,發(fā)現(xiàn)food2也變了

復(fù)制需要另外創(chuàng)建出一個(gè)一模一樣的對(duì)象出來(lái),但它們必須的確是兩個(gè)對(duì)象才行

foods1 = ['potato', 'tomato', 'noodles', 'apple', 'pizza']
foods2 = foods1[:]
foods1.append('chocolate')
print(foods1)
print(foods2)

輸出:

['potato', 'tomato', 'noodles', 'apple', 'pizza', 'chocolate']  ['potato', 'tomato', 'noodles', 'apple', 'pizza']
foods1[:] 返回foods1所有的元素,并創(chuàng)建了一個(gè)副本,這個(gè)副本是另一個(gè)對(duì)象,然后再會(huì)給了foods2,因此在更改foods1時(shí),沒(méi)有影響到副本

也可以使用 id(foods1);id(foods2) 來(lái)查看列表對(duì)象在計(jì)算機(jī)內(nèi)的ID,ID不同,則不是同一個(gè)對(duì)象

簡(jiǎn)單談一下元組

元組的使用與列表類(lèi)似,不同的,列表是可改變的,而元組不是可改變的;列表用 [] 來(lái)定義,元組則使用 () 來(lái)定義

# 定義一個(gè)元組
numbers = (1,2,3,4,5)
# 支持索引訪問(wèn)
print(numbers[1])
# 支持循環(huán)
for number in numbers:
  print(number)  
# 不支持對(duì)元素的修改,執(zhí)行下面代碼會(huì)報(bào)錯(cuò)
numbers[0] = 11

報(bào)錯(cuò)內(nèi)容

Traceback (most recent call last):  File "C:/Users/Administrator/Desktop/s.py", line 11, in <module>  numbers[0] = 11  TypeError: 'tuple' object does not support item assignment

下面看一段示例代碼the day of python learning(列表)

列表是python中的基礎(chǔ)數(shù)據(jù)類(lèi)型之一,其他語(yǔ)言中也有類(lèi)似于列表的數(shù)據(jù)類(lèi)型,比如js中叫數(shù)組,他是以[]括起來(lái),每個(gè)元素以逗號(hào)隔開(kāi),而且他里面可以存放各種數(shù)據(jù)類(lèi)型比如:
li = [‘a(chǎn)lex',123,Ture,(1,2,3,'wusir'),[1,2,3,'小明',],{‘name':'alex'}]
列表相比于字符串,不僅可以?xún)?chǔ)存不同的數(shù)據(jù)類(lèi)型,而且可以?xún)?chǔ)存大量數(shù)據(jù),32位python的限制是 536870912 個(gè)元素,64位python的限制是 1152921504606846975 個(gè)元素。而且列表是有序的,有索引值,可切片,方便取值。
# li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
# l1 = li[0]
# print(l1)  #“alex‘
# l2 = li[1]  #[1,2,3]
# print(l2)
# l3 = li[0:3] #['alex', [1, 2, 3], 'wusir']
# print(l3)
li = ['alex','wusir','egon','女神','taibai']
#增加 append()  insert()
# li.append('日天')
# li.append(1)
# print(li)
# while 1:
#   username = input('>>>')
#   if username.strip().upper() == 'Q':
#     break
#   else:
#     li.append(username)
# print(li)
# li.insert(4,'春哥')
# print(li)
# li.extend('二哥')
# li.extend([1,2,3])
# print(li)
#刪
li = ['taibai','alex','wusir','egon','女神',]
# name = li.pop(1) # 返回值
# name = li.pop() # 默認(rèn)刪除最后一個(gè)
# print(name,li)
# li.remove('taibai') # 按元素去刪除
# print(li)
# li.clear() # 清空
# print(li)
# del li
# del li[0:2] # 切片去刪除
# print(li)
#改
# li[0] = '男獸'
# li[0] = [1,2,3]
#切片
# li[0:3] = '云姐plfdslkmgdfjglk'
# li[0:3] = [1,2,3,'春哥','咸魚(yú)哥']
# print(li)
#查
# for i in li:
#   print(i)
# print(li[0:2])
#公共方法:
# l = len(li)
# print(l)
# num = li.count('taibai')
# print(num)
# print(li.index('wusir'))
# li = [1,5,4,7,6,2,3]
# #正向排序
# # li.sort()
# # print(li)
# #反向排序
# # li.sort(reverse=True)
# # print(li)
# #反轉(zhuǎn)
# li.reverse()
# print(li)
#列表的嵌套
li = ['taibai','武藤蘭','苑昊',['alex','egon',89],23]
# print(li[1][1])
# name = li[0].capitalize()
# # print(name)
# li[0] = name
# li[0] = li[0].capitalize()
# li[2] = '苑日天'
# print(li[2].replace('昊','ritian'))
# li[2] = li[2].replace('昊','ritian')
# li[3][0] = li[3][0].upper()
# print(li)

總結(jié)

以上所述是小編給大家介紹的Python Learning 列表的更多操作及示例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Selenium多窗口切換解決方案

    Selenium多窗口切換解決方案

    本文主要介紹了Selenium多窗口切換解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • GoReplay中間件python版本使用教程

    GoReplay中間件python版本使用教程

    GoReplay 是一個(gè)用于網(wǎng)絡(luò)流量錄制和回放的工具,它可以用于測(cè)試和優(yōu)化分布式系統(tǒng),這篇文章主要介紹了GoReplay中間件python版本使用教程,需要的朋友可以參考下
    2024-02-02
  • PyQt5實(shí)現(xiàn)登錄頁(yè)面

    PyQt5實(shí)現(xiàn)登錄頁(yè)面

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)登錄頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

    使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

    這篇文章主要介紹了使用python對(duì)文件中的單詞進(jìn)行提取的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • python實(shí)戰(zhàn)之利用pygame實(shí)現(xiàn)貪吃蛇游戲(一)

    python實(shí)戰(zhàn)之利用pygame實(shí)現(xiàn)貪吃蛇游戲(一)

    這篇文章主要介紹了python實(shí)戰(zhàn)之利用pygame實(shí)現(xiàn)貪吃蛇游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助喲,需要的朋友可以參考下
    2021-05-05
  • python集合的創(chuàng)建、添加及刪除操作示例

    python集合的創(chuàng)建、添加及刪除操作示例

    這篇文章主要介紹了python集合的創(chuàng)建、添加及刪除操作,結(jié)合實(shí)例形式分析了Python集合的概念、功能及針對(duì)集合的創(chuàng)建、添加與刪除等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • python機(jī)器學(xué)習(xí)基礎(chǔ)決策樹(shù)與隨機(jī)森林概率論

    python機(jī)器學(xué)習(xí)基礎(chǔ)決策樹(shù)與隨機(jī)森林概率論

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)決策樹(shù)與隨機(jī)森林概率論詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • Python圖像處理利Pillow庫(kù)使用實(shí)戰(zhàn)指南

    Python圖像處理利Pillow庫(kù)使用實(shí)戰(zhàn)指南

    Pillow庫(kù)是Python編程中用于圖像處理的重要工具,作為Python?Imaging?Library(PIL)的一個(gè)分支,Pillow庫(kù)提供了豐富的功能和易用的API,用于處理圖像的各種操作
    2023-12-12
  • Python程序打包工具py2exe和PyInstaller詳解

    Python程序打包工具py2exe和PyInstaller詳解

    這篇文章主要介紹了Python程序打包工具py2exe和PyInstaller詳解,如果可以提前將程序打包成 Windows平臺(tái)的 .exe 文件或者是Linux下的 .sh 腳本,那么使用起來(lái)就會(huì)方便很多,需要的朋友可以參考下
    2019-06-06
  • Python函數(shù)值傳遞引用傳遞及形式參數(shù)和實(shí)際參數(shù)的區(qū)別

    Python函數(shù)值傳遞引用傳遞及形式參數(shù)和實(shí)際參數(shù)的區(qū)別

    這篇文章主要介紹了Python函數(shù)值傳遞引用傳遞及形式參數(shù)和實(shí)際參數(shù)的區(qū)別,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-05-05

最新評(píng)論