05 切片、迭代、列表生成

切片

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[0:3]??? #取前3個元素

>>> L[:3]

>>> L[1:3]

>>> L[:]

>>> L[::2]?? #第三個參數表示每2個元素取一個元素,也就是隔一個取一個?['Adam','Bart']

>>> range(1, 101)??? #創建一個數列[1, 2, 3, ..., 100]

>>> L[-2:]??? #['Bart', 'Paul']

>>> L[:-2]??? #['Adam', 'Lisa']

>>> L[-4:-1:2]??? # ['Adam','Bart']

>>> 'ABCDEFG'[:3]??? #'ABC'

>>> 'ABCDEFG'[-3:]??? #'EFG'

>>> 'ABCDEFG'[::2]??? #'ACEG'

?

迭代

Python的for循環可以作用在任何可迭代對象上。

迭代操作就是對于一個集合,依次取出集合的每一個元素。

1 有序集合:list? tuple? str? unicode

2 無序集合:set

3 無序key-value對:dict

?

在Python中,迭代取出的元素的本身,而不是元素的索引。

索引迭代:

使用enumerate()函數

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for index, name in enumerate(L)

??? print index, '-', name

?

實際上,enumerate()函數把 ['Adam', 'Lisa', 'Bart', 'Paul']變成了 [(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]。

因此,迭代的每一個元素實際上是一個tuple。

for t in enumerate(L)

??? index = t[0]

??? name = t[1]

??? print index, '-', name

?

zip()函數可以把兩個list變成一個list。

>>> zip([10, 20, 30], ['A', 'B', 'C'])??? #[(10, 'A'), (20, 'B'), (30, 'C')]

?

對dict的迭代:

1、直接迭代,每次拿到dict的一個key;

2、調用values()方法,得到dict的values的list;itervalues()方法與values()方法的效果完全一樣。

values()方法實際把一個dict轉換成包含value的list;

itervalues()方法在迭代過程中依次從dict中取出value。

后者比前者省內存。

?

同時對key和value進行迭代:

items()方法和iteritems()方法

for key, value in d.items():

??? print key, ':', value

?

列表生成式

>>> range(1, 11)??? #[1, 2, 3, ..., 10]

>>> [x*x for x in range(1, 11)]??? #[1, 4, 9, ..., 100]

>>> [x*x for x in range(1, 11) if x%2 == 0]

>>> isinstance(x, str)??? #判斷x是否為字符串,字符串的upper()方法可以返回大寫

>>> [m + n for m in 'ABC' for n in '123']??? #['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

?

?

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

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

相關文章

一個例子徹底搞懂C++的虛函數和純虛函數

學習C的多態性,你必然聽過虛函數的概念,你必然知道有關她的種種語法,但你未必了解她為什么要那樣做,未必了解她種種行為背后的所思所想。深知你不想在流于表面語法上的蜻蜓點水似是而非,今天我們就一起來揭開擋在你和虛…

利用Caffe實現mnist的數據訓練

阿里云的參考文檔:https://help.aliyun.com/document_detail/49571.html在文檔里提供了caffe的一個案例,利用Caffe實現mnist的數據訓練。準備的數據源可以在“深度學習案例代碼及數據下載”頁找到Caffe數據下載并解壓。要訓練自己的圖片,還是…

06 函數式編程

1 函數式編程簡介 函數:function 函數式:functional 一種編程范式 特點: 把計算視為函數而非指令 純函數式編程:不需要變量,沒有副作用,測試簡單 支持高階函數,代碼簡潔 Python支持的函數式…

Android SDK開發

目前我們的應用內使用了 ArcFace 的人臉檢測功能,其他的我們并不了解,所以這里就和大家分享一下我們的集成過程和一些使用心得 集成 ArcFace FD 的集成過程非常簡單 在 ArcFace FD 的文檔上有說明支持的系統為 5.0 及以上系統,但其實在 4.4 系…

jQuery WeUI 上傳

jQuery WeUI 是專為微信公眾賬號開發而設計的一個框架,jQuery WeUI的官網:http://jqweui.com/ 需求:需要在微信公眾號網頁添加上傳圖片功能 技術選型:實現上傳圖片功能可選百度的WebUploader、餓了么的Element和微信的jQuery WeUI…

07 模塊

模塊和包的概念 等同于java中的Package 模塊名文件名(無后綴) 在文件系統中,包就是文件夾,模塊就是xxx.py文件 每層包下面都有__init__.py文件 導入模塊 >>> import math >>> math.pow(2, 0.5) >>…

1.rabbitmq 集群版安裝及使用nginx進行四層負載均衡設置

1.安裝erlang 需要注意erlang的版本是否滿足rabbitmq的需求 這里用到的版本是:Erlang 19.0.4 RabbitMQ 3.6.15 wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpmrpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm yum -y inst…

使用WEUI uploader上傳圖片

使用WEUI uploader上傳圖片&#xff0c;博主費了很大的勁總算找到完整的了&#xff0c;并且帶后臺接收代碼&#xff0c;有需要的朋友拿去吧&#xff0c;親測可用&#xff01; 一、html代碼<link rel"stylesheet" href"https://res.wx.qq.com/open/libs/weui/…

08 面向對象編程

1 介紹 面向對象編程是一種程序設計范式 把程序看做不同對象的相互調用&#xff0c;對現實世界建立對象模型。 面向對象編程的基本思想&#xff1a; 類和實例&#xff1a; 類用于定義抽象類型 實例根據類的定義被創建出來 2 定義類并創建實例 類通過class關鍵字定義&…

H5+jqweui實現手機端圖片壓縮上傳 Base64

H5jqweui實現手機端圖片壓縮上傳主要功能&#xff0c;使用H5的formData上傳base64格式的圖片&#xff0c;canvas壓縮圖片&#xff0c;前端樣式使用weui&#xff0c;為方便起見&#xff0c;使用了jquery封裝過的weui&#xff0c;jqweui。話不多少&#xff0c;開始上代碼。前端代…

09 類的繼承

繼承一個類 class Person(object): def __init__(self, name, gender): self.name name self.gender gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score score 判斷類型 isinstance()可以…

vue 中v-if 與v-show 的區別

相同點或者說功能&#xff0c;都可以動態操作dom元素的顯示隱藏 不同點&#xff1a; 1.手段&#xff1a;v-if是動態的向DOM樹內添加或者刪除DOM元素&#xff1b;v-show是通過設置DOM元素的display樣式屬性控制顯隱&#xff1b;2.編譯過程&#xff1a;v-if切換有一個局部編譯/卸…

vue打包后放在 nginx部署時候的配置文件

部署了三套程序,默認的&#xff0c;admin和design#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include …

淘淘商城之技術選型、開發工具和環境、人員配置

一、技術選型 1&#xff09;Spring、SpringMVC、Mybatis 2&#xff09;JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor&#xff08;富文本編輯器&#xff09;、CSSDIV 3&#xff09;Redis&#xff08;緩存服務器&#xff09; 4&#xff09;Solr&#xff08;搜索&#x…

啟動代碼格式:nginx安裝目錄地址 -c nginx配置文件地址

啟動啟動代碼格式&#xff1a;nginx安裝目錄地址 -c nginx配置文件地址 例如&#xff1a;[rootLinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf停止nginx的停止有三種方式&#xff1a; 從容停止1、查看進程號[rootLinuxServer ~]# ps -ef…

Lecture 3 Divide and Conquer

1.Divide the problem(instance) into one or more sub-problem; 2.Conquer each sub-problem recursively; 3.Combine solutions.

Maven報錯找不到jre

富人之所以越來越富&#xff0c;窮人之所以越來越窮&#xff0c;中產階級之所以總是在債務泥潭中掙扎&#xff0c;其主要原因之一在于他們對金錢的觀念不是來自學校&#xff0c;而是來自家庭。 ---《窮爸爸富爸爸》 一、報錯提示 常規配置maven環境變量&#xff0c;報錯&#x…

vue按照url地址訪問出錯404

問題描述&#xff1a; 最近在開發cms的時候使用Vue.js框架&#xff0c;利用vue-route結合webpack編寫了一個單頁路由項目&#xff0c;自己在服務器端配置nginx。部署完成后&#xff0c;訪問沒問題&#xff0c;從頁面中點擊跳轉也沒問題&#xff0c;但是只要點擊刷新或通過瀏覽器…

Lecture 4 Quick Sort and Randomized Quick Sort

Quick Sort --Divide and Conquer --Sorts “in place” --Very practical with tuning Divide and Conquer: 1.Divide: Partition array into 2 sub-arrays around pivot x such that elements in lower sub-array < x < elements in upper sub-array; 2.Conquer: …