1. 程式人生 > >python中列表、字典和map,lambda函式的操作淺析新

python中列表、字典和map,lambda函式的操作淺析新

一:一些簡單的操作

列表切片

a=[1,2,3,4,5,6,7,8]
a[1:]
[2, 3, 4, 5, 6, 7, 8]
a[::-1]
[8, 7, 6, 5, 4, 3, 2, 1]
a[2:4]
[3, 4]
a[::-2]
[8, 6, 4, 2]
a[-3:-1]
[6, 7]

列表生成

x=[x**2 for x in a]
[1, 4, 9, 16, 25, 36, 49, 64]

字典生成

b={'q':1,'w':2,'e':3}
 {'e': 3, 'q': 1, 'w': 2}
c={k:(v+1) for k,v in b.items()}
{'e': 4, 'q': 2, 'w': 3}

注意,b.items()的方法是把字典中所有的元素以列表的形式展現出來,用b.keys(),b.values()一樣

如果在判斷一個key是否在字典,應使用如下

if x in dic:
    pass

時間複雜度為1

但是若採用

if x in dic.keys():
    pass

時間複雜度會變成n

我在這裡有很深感觸。

map函式的簡單使用。

a=[1, 2, 3, 4, 5, 6, 7, 8]
b=list(map(str,a))
['1', '2', '3', '4', '5', '6', '7', '8']

map和lambda的簡單使用

c=list(map(lambda x : x+2 , a))
[3, 4, 5, 6, 7, 8, 9, 10]

再配合filter使用

c=list(map(lambda x : x+2 , filter(lambda x : x % 3 == 0,a)))
[5, 8]

二,一些高階特性

1.enumerate函式的使用

enumerate可以把各種迭代器包裝為生成器,以便稍後產生輸出值,生成器每產生一對輸出值,其中,前者表示迴圈下標,後者表示從迭代器中獲取的下一個序列元素。

舉例如下

a=['qwqw','dota','lol','dnf','bibi']
for k,v in enumerate(a):
    print(k,v)
0 qwqw
1 dota
2 lol
3 dnf
4 bibi

2.zip函式的使用

python3中的zip函式,可以把兩個或者兩個以上的迭代器封裝為生成器,以便以後求值。這種zip生成器,會從每個迭代器中獲取該迭代器的下一個值,然後把這些值匯聚成元組,與通過下標來訪問多份列表的那種寫法相比,這種zip寫出來的程式碼更加清晰。如果遇到的輸入的迭代器的長度不同,那麼只要有一個迭代器耗盡,zip就會停止工作。

簡單舉例如下

a=['zhang','li','zhao']
b=['haha','yaya','wawa','wuwu']
for k,v in zip(a,b):
    print(k,v)
zhang haha
li yaya
zhao wawa

相關推薦

python列表字典maplambda函式操作淺析

一:一些簡單的操作列表切片a=[1,2,3,4,5,6,7,8] a[1:] [2, 3, 4, 5, 6, 7, 8] a[::-1] [8, 7, 6, 5, 4, 3, 2, 1] a[2:4] [3, 4] a[::-2] [8, 6, 4, 2] a[-3:-1]

python列表元組字典集合

列表、元組、字典和集合      1.列表和元組。 Python中列表list和元組tuple都是表示元素序列甚至都不要求表示的元素型別一樣。都是按照下標進行存取操作,最大的不同是元組裡面的值確定之後,不能修改。 列表的建立:  Empty_list=[]空列表。 Week

leetcode-1:python基礎迴圈條件列表字典的應用enumeraterange函式以及2.03.0print的區別

題目: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each

Python列表元組字典集合與字串相關函式持續更新……

> 本篇部落格為博主第一次學 Python 所做的筆記(希望讀者能夠少點浮躁,認真閱讀,平心靜氣學習!) **補充:** - 列表、元組和字串共同屬性: - 屬於有序序列,其中的元素有嚴格的先後順序 - 都支援雙向索引,索引範圍 [ -L, L-1 ] ,L -- 表示列表、元組和字串的長度(分正向索引

Python 語言學習 第三篇:陣列型別(列表字典元組)

列表和欄位都可以在原處進行修改,可以按照需求增長或縮短,並且可以包含任何型別的物件或被巢狀。列表和字典儲存的是物件的引用,而不是拷貝。 一,列表 列表是有序的序列,每一個列表項的順序是固定的,這使得列表可以通過指定的偏移來索引和分片。列表是可變的序列,支援在原處修改。 列表項可以是任何型別,或物件,也可

python列表元組及字典的排序

0 序言 首先介紹,在Python排序中,常用的兩個排序函式是sort()和sorted()。在講列表、元組和字典的排序之前,有必介紹這兩個函式。下面基於Python3,檢視該函式的引數值。(Python2和Pyhton3對這兩函式的引數設定有所差別) 在P

day5 元組列表字典集合

排列 auth {} 裏的 快速 log tde 格式 add 列表是用來存放多個值[]內用逗號分隔,列表內元素屋類型限制但凡能用for取出的一個個值的,就能把它放入list列表補充for循環range()和切片用法相同取頭不取尾,步長range用來打印索引和索引對應的值e

字符串列表字典集合

disjoint 大寫 居中 編碼 ros 位置 itl 臨時 字符 一、字符串常用方法 1 #!/usr/bin/env python 2 #created by Baird 3 4 str = "my name is Baird." 5 str2= "my

python@staticmethod@classmethod實例方法

dir pri cep ear 代碼 應用 can 打印 靜態 1.形式上的異同點: 在形式上,Python中:實例方法必須有self,類方法用@classmethod裝飾必須有cls,靜態方法用@staticmethod裝飾不必加cls或self,如下代碼所示: 1

pythonreadabilityDocumenthtml2text的使用

今天在處理html資料的時候發現了python裡面比較好玩的幾個庫,先存起來之後有時間慢慢再去學習和使用,覺得是一件蠻有意思的事情。今天想學習使用的是html2text模組和readability模組。其中,第一個模組是負責對html資料進行處理的,返回html中的文字資訊;第二個模組是負責html

javalistsetmap 的區別

List的功能方法   實際上有兩種List: 一種是基本的ArrayList,其優點在於隨機訪問元素,另一種是更強大的LinkedList,它並不是為快速隨機訪問設計的,而是具有一套更通用的方法。   List : 次序是List最重要的特點:它保證維護元素特定的順序。List為Colle

python 002-python基礎列表字典函式的使用

列表的使用 names=["張三"]; print(names) 新增列表的值 尾部新增 names.append("李四") print(names) 新增列表的值 指定位置新增 names.insert(1,"王五"); print(names) 刪除列表的

pythonhasattrgetattrsetattr的使用方法

hasattr(object, name)判斷一個物件裡面是否有name屬性或者name方法,返回BOOL值,有name特性返回True, 否則返回False。需要注意的是name要用括號括起來 1 >>> class test(): 2 ...

python andor &|

and: 表示式a and表示式 b: 表示式a 如果是真,那麼就返回表示式 b 表示式a 如果為假,那麼就返回表示式 a or: 表示式 a or 表示式 b: 表示式 a如果為真,那麼就返回表示式 a 表示式 a如果為假,那麼就返回表示式 b &:標示與運算 1&

Python的異常處理tryexcept的用法

  在各種程式語言進行工作和學習的過程中,都會有一些錯誤異常,這些錯誤則以不同的方式去展現出來,但是也有一些程式語言的錯誤資訊無法直接看到,比如html和css,只能通過頁面顯示的最終結果來判斷是否有錯誤。Python的錯誤異常在大部分IDE編輯器中則可以直接顯示出來,便於開發人員的除錯及修改工

Pythonread()readline()readlines()三者間的區別用法

前言 眾所周知在python中讀取檔案常用的三種方法:read(),readline(),readlines(),今天看專案是又忘記他們的區別了。以前看書的時候覺得這東西很簡單,一眼掃過,待到用時卻也只知道有這麼幾個方法,不懂得它的原理與用法。也許吧,沒有永遠的記憶,況且根

python封裝繼承多型——python學習筆記

1. 準備 封裝、繼承和多型在程式語言中專指面向物件程式設計的特性,下面先給出一個python中建立類的例子: class Student(object): def __init__(self, name, score): self.name = name

Python and or & ||

and :表示式 a  and 表示式 b:表示式a 如果是真,那麼就返回表示式b表示式a如果是假,那麼就返回表示式aor:表示式 a  or 表示式 b:表示式a 如果是真,那麼就返回表示式a表示式a如果是假,那麼就返回表示式b&,標示與運算1&2,2在二進

pythonstr()int()float()函式

在python中有比較特殊的運算子比如: **         # 表示指數,2**3=8 //         # 表示整除,取商的整數部分,不進行四捨五入,22/8=2 最基本的三種資料型別是str字元型,int整形,float浮點型,一個值或一個變數在同一時刻只能

Pythonread()readline()readlines()的用法簡單案例

首先我們先建立一個測試檔案,test.txt1.read() 用法:從檔案當前位置起讀取size個位元組,若無引數size,則表示讀取至檔案結束為止,它範圍為字串物件。# 開啟含中文的文字 file=o