Python3.7之列表生成式

Python3.7之列表生成式

a = [i for i in range(10)]
b = range(10)
print(a)
print(type(a))
print(b)
print(type(b))

'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
<class 'list'>
range(0, 10)
<class 'range'>
'''

1、兩層循環,能夠構成全排列

m = [a + b + c for a in '123' for b in '123' for c in '123']
print(m)

# ['111', '112', '113', '121', '122', '123', '131', '132', '133', '211', '212', '213', '221', '222', '223', '231', '232', '233', '311', '312', '313', '321', '322', '323', '331', '332', '333']

2、使用if

c = [i for i in range(10) if i > 5]
print(c)

# [6, 7, 8, 9]

3、使用 if …else …

注意順序和用法python

d = [i if i > 5 else i*10 for i in range(10)]
print(d)

#輸出結果: [0, 10, 20, 30, 40, 50, 6, 7, 8, 9]

4、隨機取3個不重複的數字

m = [(a, b, c) for a in '123' for b in '123' for c in '123' if a != b and b != c and a != c]
print(m)

# [('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'), ('2', '3', '1'), ('3', '1', '2'), ('3', '2', '1')]
相關文章
相關標籤/搜索