生成器表示式
生成器和列表解析式對比
集合解析式
字典解析式
總結習題:
以下例子返回值會是什麼?# 非列表解析式寫法
even =
for x in rang(10)
:if x %2==
0:--
----
----
----
----
----
----
----
# 列表解析式寫法
even =
[x for x in
range(10
)if x%2==
0]
輸出結果:newlist =
(i)for i in
range(10
(newlist)
newlist1 =
[str
(i)for i in
range(10
(newlist1)
例: 20以內,既能被2整除又能被3整除的數012
3456
789[
none
,none
,none
,none
,none
,none
,none
,none
,none
,none][
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9']
輸出結果([i for i in
range(20
)if i%2==
0and i%3==
0])print
([i for i in
range(20
)if i%2==
0if i%3==
0])
例:[0,
6,12,
18][0
,6,12
,18]
輸出結果:print([
(x,y)
for x in
'abc'
for y in
range(3
)])print([
[x,y]
for x in
'abc'
for y in
range(3
)])print([
for x in
'abc'
for y in
range(3
)])
請問下面3中輸出各是什麼?[
('a',0
),('a',1
),('a',2
),('b',0
),('b',1
),('b',2
),('c',0
),('c',1
),('c',2
)][[
'a',0]
,['a',1]
,['a',2]
,['b',0]
,['b',1]
,['b',2]
,['c',0]
,['c',1]
,['c',2]
][,,
,,,,
,,]
輸出結果print([
(x,y)
for x in
range(7
)if x >
4for y in
range(20
,25)if y>23]
)print([
(x,y)
for x in
range(7
)for y in
range(20
,25)if x>
4if y>23]
)print([
(x,y)
for x in
range(7
)for y in
range(20
,25)if x>
4and y>23]
)
[(5
,24),
(6,24
)][(
5,24)
,(6,
24)][
(5,24
),(6
,24)]
輸出結果g =(""
.format
(i)for i in
range(1
,5))
next
(g)for x in g:
(x)print
('-----------'
)for x in g:
(x)
解析:1.延遲計算;2.返回迭代器,可以迭代;3.從前到後走完一遍後,不能回頭0002
0003
0004--
----
----
-
g =[""
.format
(i)for i in
range(1
,5)]
for x in g:
(x)print
('-----------'
)for x in g:
(x)
0001
0002
0003
0004--
----
----
-0001
0002
0003
0004
注:,會報typeerror錯誤,因為[x]是list,集合內的元素需要可hash,而list是不可hash
注:,會報typeerror錯誤,因為key是list,不可hash
會輸出幾個元素呢?
輸出結果: 原因是字典有去重特性,而後一次的輸出結果會覆蓋前一次。
第一題 使用列表解析式 列印九九乘法表 第一題
第二題 使用列表解析式生成 「0001.abadicddws」 格式的id號 第一題
要求id格式是以點號分割,左邊是4位從1開始的整數,右邊是10位隨機小寫英文本母。
請依次生成前100個id的列表,如圖:
習題參***'0001.bbcomlkdyt'
'0002.yzjudytpna'
'0003.zycscjsvfy'
'0004.hhvqzlukui'
'0005.xissuxwsou'
列表生成式(列表解析式 列表推導式)
li for i in range 0,101 print li 用列表解析式 列表生成式 列表推導式 li i for i in range 0,101 print li 裡面的i可以是其他的 li x for x in range 0,101 print li 對結果進行其他操作方式 li i ...
Python列表解析式
有時候,乙個程式設計設計模式使用得十分普遍,甚至會逐步形成自己獨特的語法。python程式語言中的列表解析式 list comprehension 就是這類語法糖 syntactic sugar 的絕佳代表。python中的 列表解析式 是個偉大的發明,但是要掌握好這個語法則有些難,因為它們並是用來...
python 列表解析式
python的列表解析式只是為了解決已有問題提供新的語法 什麼是列表解析式?列表解析式是將乙個列表轉換成另乙個列表的工具。在轉換過程中,可以指定元素必須符合一定的條件,才能新增至新的列表中,這樣每個元素都可以按需要進行轉換。可以把列表解析式看作為結合了filter函式與map函式功能的語法糖 dou...