1. 非列表生成式
2.列表生成式
練習1:輸出[1**1 2**2 .. 9**9]s = '51 5000 10000'
li = [int(item) for item in s.split()]
print(li)
方法一:
方法二:列表生成器li =
for i in range(1,10):
print(li)
print([i ** i for i in range(1,10)])
練習2:找出1——10之間所有偶數,並且返回乙個列表(包含以這個偶數為半徑的圓的面積)
練習3:找出1~n之間所有的質數import math
print([math.pi * r * r for r in range(2,11,2)])
練習4:給定乙個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7) [2,3,5,7]def isprime(num):
for i in range(2,num):
if num % i == 0:
return false
else:
return true
print([i for i in range(2,101) if isprime(i)])
輸入描述:輸入包括乙個整數n,(3 ≤ n < 1000)
輸出描述:輸出對數
示例1 : 輸入:25 輸出:1(2+23)
二、列表生成式變形
1. s1 = 'abc' s2='123',輸出結果為a1 a2 a3 ... c1 c2 c3
print([i + j for i in 'abc' for j in '123'])
2. li = [ [1,2,3], [4,5,6],[7,8,9] ]將該列表中的元素列印輸入為如下格式[ 1,2,3,4,5,6,7,8,9]
li = [
[1,2,3],
[4,5,6],
[7,8,9]
]#方法一:
resultli =
for item1 in li:
for item2 in item1:
print(resultli)
#方法二:
1.假設有20個學生,名字為westosx,學生分數在60-100之間,篩選出成績在90分以上的學生
方法1:
import random
stuinfo = {}
for i in range(20):
name = 'westos' + str(i)
score = random.randint(60,100)
stuinfo[name] = score
print(stuinfo)
highscore = {}
for name,score in stuinfo.items():
if score > 90:
highscore[name] = score
print(highscore)
方法2:使用字典生成器
2. 將所有的key值變為小寫
例如:d = dict(a=1,b=2,c=2,b=9,a=10),將所有key變為小寫,並合併相同key的鍵值(a=11,b=11,c=2)
方法1:
d = dict(a=1,b=2,c=2,b=9,a=10)
print(d)
new_d = {}
for i in d:
new_d[i.upper()] = d[i]
print(new_d)
new_d = {}
for k,v in d.items():
low_k = k.lower()
if low_k not in new_d:
new_d[low_k] = v
else:
new_d[low_k] += v
print(new_d)
方法二:字典生成式
Python之列表生成式
列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立list的生成式。1 生成list 1,2,3,4,5,6,7,8,9,10 print list range 1,11 2 生成 1x1,2x2,3x3,10x10 方法一 用迴圈 l for x ...
python之列表生成式
生成乙個 1 1,2 2,3 3,4 4,10 10 的列表 方法一l1 for i in range 1,11 print l1 2,4,6,8,10,12,14,16,18,20 方法二l2 x x for x in range 1,11 print l2 2,4,6,8,10,12,14,16...
python之列表生成式
一 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是 迴圈 l for x in range 1,11 但是迴圈太繁瑣...