07-python學習筆記-列表生成式
2017.6.4
參考資料
可以使用List Comprehensions來建立list,它是Python內建的,非常簡單,非常強大。
例子1
要生成list[1,2,3,4,5,6],使用list(range(1,7))
>>> list(range(1,7))
[1, 2, 3, 4, 5, 6]
例子2
要生成[1x1, 2x2, 3x3, …, 10x10],怎麼做?
當我們使用迴圈的時候
>>> L=[]
>>> for x in list(range(1,11)):
... L.append(x*x)
...
>>>
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
當我們使用列表生成式時
>>> [x*x for x in list(range(1,10))]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
for迴圈後面還可以加上if判斷,這樣我們就可以篩選出符合自己條件的數字,如果我們想篩選出偶數的平方
>>> [x*x for x in list(range(1,10)) if x%2==0]
[4, 16, 36, 64]
使用兩層迴圈,生成全排列
>>> [x+y for x in '123' for y in 'abc']
['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
複習使用06篇筆記中的迭代,使用兩個變數來生成list
這裡在做的時候遇到一個小問題
>>> dict={'a':1,'b':2,'c':3}
>>> [k + '=' + v for k,v in dict.items()]
Traceback (most recent call last):
File "<stdin>" , line 1, in <module>
File "<stdin>", line 1, in <listcomp>
TypeError: Can't convert 'int' object to str implicitly
value不能是整形
更改value成string型別,重新做
>>> dict={'a':'A','b':'B','c':'C'}
>>> [k + '=' + v for k,v in dict.items()]
['b=B', 'c=C', 'a=A']
練習
把一個list中所有的字串變成小寫:
>>> L = ['Hello', 'World', 'IBM', 'Apple']
>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
但是,當list中既包含字串,又包含整數,由於非字串型別沒有lower()方法,所以列表生成式會報錯
>>> L = ['Hello', 'World', 'IBM', 'Apple',13]
>>> [s.lower() for s in L]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
AttributeError: 'int' object has no attribute 'lower'
下面,修改列表生成式,通過新增if語句保證列表生成式能正確地執行,提示,內建的isinstance函式可以判斷一個變數是不是字串:
>>> [s.lower() for s in L if isinstance(s,str)==True]
['hello', 'world', 'ibm', 'apple']
相關推薦
07-python學習筆記-列表生成式
2017.6.4 參考資料 可以使用List Comprehensions來建立list,它是Python內建的,非常簡單,非常強大。 例子1 要生成list[1,2,3,4,5,6],使用list(range(1,7)) >
Python學習:列表生成式和列表生成器
一、列表生成式 列表生成式:顧名思義就是python中生成列表的表示式。運用列表生成式可以快速的生成列表,程式碼卻很簡潔。 示例一: 如要生成 [1, 2, 3, 4, 5, 6, 7, 8, 9] 列表: lb = [x for x in ran
Python學習筆記-列表的條件過濾生成
需求 請編寫一個函式,它接受一個 list,然後把list中的所有字串變成大寫後返回,非字串元素將被忽略。 程式碼 def toUppers(L): L1=[x.upper() for
python學習筆記——列表操作
參數 統計 一個 del blog count insert lang python列表 python列表操作——增 append:追加一條數據到列表的最後 name = ["Zhangsan","XiongDa","Lisi"] name.append("wangwu"
python學習筆記列表和元組(三)
python列表(list)是Python以及其他語言中最常用到的數據結構之一。Python使用使用中括號 [ ] 來解析列表。列表是可變的(mutable)——可以改變列表的內容。對應操作:1、查([]切片操作) name = [‘tom‘,‘張三‘,‘joker‘,‘李四‘] print(name[2])
學習筆記GAN001:生成式對抗網絡,只需10步,從零開始到調試
sar quest 從零開始 http demo pip lib download mark 生成式對抗網絡(gennerative adversarial network,GAN),目前最火的非監督深度學習。一個生成網絡無中生有,一個判別網絡推動進化。學技術,不先著急看書
4.Python學習筆記:列表[增刪改查]
clas pre python學習 == 參數 code app size 一個 a=[0,1,2,3,4,5,7,6,8] 增 append a.append(9) #默認增加在最後位置,只能有一個參數 b.insert(1,2) #在1位置插入2
python List Comprehensions(列表生成式)
itl 51cto os模塊 技術分享 tle 出錯 生成式 oos pri 列表生成式: 創建List一、普通創建List#!/usr/bin/python#common establish waylis1 = [];for x in range(1, 10): l
Python學習筆記列表之使用列表
可恥 sim 開始 使用 clas 筆記 好的 ima true 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線-------------------------------
Python高階特性——列表生成式與生成器
列表生成式: 1)、 L=[x*x for x in range(1,11) if x%2==0] 等價於 L = [] for x in range(1, 11): if x%2==0: L.append(x * x) 2)、 a=[m
python基礎之列表生成式
例1: >>> List=[x for x in range(10)] >>> List [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 等價於: >>> List=[] >>> for x in ra
python語法_列表生成式_生成式
python 類比 span 生成器 進行 生成式 什麽 next 之前 列表生成式 a = [x for x in range(10)] print(a) x 可進行操作 a = [x*2 for x in range(10)] print(a) x甚至可以為函數, de
Python學習筆記-列表與元組
·序列 筆記: 在Python中,最基本的資料結構為序列。序列中每個元素都有編號,其位置或索引,其中第一個元素索引為0,第二個為1,以此類推。 Python內建多種序列,其中包含列表、元組、字元串等,他們都可以稱為“容器”(字典也稱作容器)。 注意:列表可以修改,而元組和字串則不能修改(可以重新賦值)。
Python中list列表生成式如何操作使用?list詳解
列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式。 一、舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):
【廖雪峰Python習題集】列表生成式
如果list中既包含字串,又包含整數,由於非字串型別沒有lower()方法,所以列表生成式會報錯: >>> [s.lower() for s in L] Traceback (mos
Python學習筆記——列表(list)
列表(list) 是一種集合。特點:[]定界符、可變、有序、支援下標、逗號分隔、元素可以重複、元素查詢速度非常慢。 列表中的資料型別可以不同。 常用方法: i.append(x):將元素x新增到列表i尾部 i.extend(L):將列表L中所有元素新增至列表i尾部 i.insert(index
Python生成器和列表生成式
生成器: 在Python中, 這種一邊迴圈一邊計算的機制, 稱為生成器:generator 列表生成式:L(list) = [x * x for x in range(10)] 生成器: g(generator) = (x * x for x in range(10)
python中的列表生成式 | 字典生成式
1.列表生成式 列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式。 舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))
python高階特性-列表生成式
列表生成式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的生成式。 舉個例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>
python 迴圈與列表生成式
一般而言,在迴圈與列表生成式都可選的時候,列表生成式感覺速度會更快一點,做一個對比試驗: # python3 import time def compare_time(N): start