python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器
一.列表解析式(列表推倒式):
功能:是提供一種方便的列表創建方法,所以,列表解析式返回的是一個列表.
1 lst = [1, 3, 5, 8, 10]
2 ll = [x+x for x in lst if x <= 5]
3 print ll
4 >>>[2, 6, 10]
二.字典解析式:
1 dic = {'a': 1, 'b': 2, 'c': 3}
2 d = {k: v for k, v in dic.items() if v >=2}
3 print d
4 >>>{'c': 3, 'b': 2}
三.集合解析式:
集合推導和列表推導的使用方法是類似的,只不中括號該改成大括號.
1 lst = [1, 3, 5, 8, 10]
2 aa = {x+x for x in lst if x <= 5} //注意集合解析式使用大括號!!!
3 print aa
4 >>>set([2, 10, 6]) //且輸出為一個集合!!!
四.生成器:
通過列表生成式,我們可以直接創建一個列表。但是,受到內存限制,列表容量肯定是有限的。而且,創建一個包含100萬個元素的列表,不僅占用很大的存儲空間,如果我們僅僅需要訪問前面幾個元素,那后面絕大多數元素占用的空間都白白浪費了。
所以,如果列表元素可以按照某種算法推算出來,那我們是否可以在循環的過程中不斷推算出后續的元素呢?這樣就不必創建完整的list,從而節省大量的空間。在Python中,這種一邊循環一邊計算的機制,稱為生成器(Generator)。
python提供兩種方式創造生成器:
①生成器函數:和常規函數一樣定義,不過用 yield而不是 return。
yield會一次返回一個結果,然后掛起,下次從掛起處繼續執行,這樣就解決了內存的限制。
注:其他方式會一次執行完所有的結果,然后再一次返回一個結果,這樣,如果數據量大就會受到內存的限制,而且會占用大存儲空間。
def gen(n):
for i in range(n):
yield i + 2
for item in gen(10):
print item
②生成器生成式:
生成器生成式和列表生成式類似,只是將方括號替換為括號。
generators = (x+2 for x in range(10))
友情鏈接:點我
python列表,字典,集合
初識模塊 import sys print(sys.path)#查看化境變量 print(sys.argv)#查看文件的相對路徑,但是在pachrm中 會自動轉為絕對路徑 import os #os. ...
python開發技巧---列表、字典、集合值的過濾
主要學習列表,字典,集合表達式的應用: 列表的解析式: 生成一個隨機列表: In [4]: datalist = [randint(-10,10) for _ in range(10)] In [5] ...
python進階---列表、字典、集合相關操作
基本概念 列表 序列是python中一個基本的數據結構,每個元素都有一個索引index 操作 # 創建列表 list = [] # 修改列表 list[2] = 2001 # 刪除列表 del lis ...
python生成式:列表、字典、集合
python的3類生成式: 列表生成式 字典生成式 集合生成式 1.python列表生成式 my_data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(&quo ...
Python強化訓練筆記(一)——在列表,字典,集合中篩選數據
列表,字典,集合中根據條件篩選數據,如下所示 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非負數 字典:{1:90,2:55,3:87...} 找出所有值大于60的鍵值對 集合:{2,3 ...
python數據結構-如何在列表、字典、集合中根據條件篩選數據
如何在列表.字典.集合中根據條件篩選數據 問題舉例: 過濾列表[1, 2, 5, -1, 9, 10]中的負數 篩選字典{“zhangsan”:97, "lisi":80, &qu ...
Python基礎__字典、集合、運算符
之前討論的字符串.列表.元組都是有序對象,本節則重點討論無序對象:字典與集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素與自然數集形成了一個一一對應的關系.例如L=['I' ...
Python中的字典與集合
今天我們來講一講python中的字典與集合 Dictionary:字典 Set:集合 字典的語法: Dictionary字典(鍵值對) 語法: dictionary = {key:value,key: ...
Python 列表生成式 &; 字典生成式
Python 列表生成式 & 字典生成式 通過生成式可以更加簡潔地生成列表和字典 列表生成式 對比 直接生成數據后加入列表示例: user_list = list() for i in ran ...
python容器類型:列表,字典,集合等
容器的概念我是從C++的STL中學到的 什么是容器? 容器是用來存儲和組織其他對象的對象. 也就是說容器里面可以放很多東西,這些東西可以是字符串,可以是整數,可以是自定義類型,然后把這些東西有組織的存 ...
隨機推薦
在drupal7中動態的為某個內容類型添加字段
$myField_name = "my_new_field_name"; if(!field_info_field($myField_name)) // check if the ...
java中保留幾位小數
public class NumUtils { /** * 保留兩位小數 * * @param d * @return */ public static String get2Wei(double d ...
Linux SSH 遠程操作與傳送文件
操作系統:centos 6.5 x64 一.遠程連接:在進行linux 的?ssh遠程操作前,一定要確認linux 是否安裝了 openssh-clients,為了方便起見,一般用yum安裝即可:# ...
libvirt里的面向對象的C語言
C語言:類的聲明和定義 // 通用父類的定義 struct _virClass { virClassPtr parent; unsigned int magic; char *name; size_t ...
201521123106 《Java程序設計》第10周學習總結
1. 本周學習總結 1.1 以你喜歡的方式(思維導圖或其他)歸納總結異常與多線程相關內容. 2. 書面作業 本次PTA作業題集異常.多線程 finally 題目4-2 1.1 截圖你的提交結果(出現學 ...
聽翁愷老師mooc筆記(6)--指針運算
指針值加1就是將指針值加上sizeof(指針所指變量的類型) 1+1=2,那么指針加1是加上了1這個數字嗎?試一下,在代碼中定義了char數組,char也是整數,數組名是ac,ac中有10個元素,0- ...
Spark:scala集合轉化為DS/DF
scala集合轉化為DS/DF case class TestPerson(name: String, age: Long, salary: Double) val tom = TestPerson( ...
【轉】Leveldb源碼分析——1
先來看看Leveldb的基本框架,幾大關鍵組件,如圖1-1所示. Leveldb是一種基于operation log的文件系統,是Log-Structured-Merge Tree的典型實現.LSM源 ...
layui---事件監聽
在使用layui的form表單做驗證提交的時候,如果結合vue,或者是三級聯動的時候,就需要做事件監聽了. 具體語法: form.on('event(過濾器值)', callback); 可以用于監聽 ...
C# 后臺訪問webapi
具體在哪看見的忘記了. 異步: public static class CallWebAPI { public static async Task APIPost(stri ...
總結
以上是生活随笔為你收集整理的python 列表解析式_python列表解析式,字典解析式,集合解析式和生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果 iOS 15.7.4 RC 发布
- 下一篇: 黑马程序员python笔记_#华为云·寻