列表、字典、集合推導式用法介紹

 

學習了幾天,對於布爾值,zip() 隨機數 列表、字典、集合推導式進行了總結

# -*- coding: utf-8 -*- 
# @File : 補充.py 
# 描述 : 布爾值,zip() 隨機數 列表、字典、集合推導式
# @Time : 2020/5/28 18:23 
# @Author : 崔
# @versions : 1.0

# 1、bool型  假的值有:None、0、0.0、False、所有的空容器(空列表、空元組、空字典、空集合、空字符串),其它是真

# 2、zip()函數
# zip() 函數⽤於將可迭代的對象作爲參數,將對象中對應的元素打包成⼀個元組,然後返回由這些元組組成的列表
import random

a = [1, 2, 3, 4]
b = [2, 3, 4]
res = zip(a, b)
print(res)   # <zip object at 0x000002696B913B08>  是一個對象,需要迭代出來
print(list(res))  # [(1, 2), (2, 3), (3, 4)]
# 可以使⽤for-in 遍歷
for x, y in zip(a, b):
    print(x, y)

# # 3、隨機數 import random
s1 = [134, 45, 56, 67, 34, 23, 254]
print(random.choice(s1))  # choice(參數)  返回序列,列表,元組、字符串中一個隨機元素
print(random.randint(0, 3))  # [0.3]
print(random.randrange(0,10,2))
random.shuffle(s1)                  # 將序列元素隨機排列(打亂順序)
print(s1)  # 將序列元素隨機排序

# 列表推導式
'''
[exp for value in list (if表達式)]  exp爲表達式, if可選
'''
l1 = [x*x for x in range(6)]
print(l1)
l2 = [x*x for x in range(6) if x % 2 == 0]
print(l2)

# 模擬撲克牌洗牌
yanse = ['紅桃', '方片', '黑桃', '梅花']
dianshu = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
poke = [[x, y] for x in yanse for y in dianshu]
random.shuffle(poke)
print(poke)


# 集合表達式
'''
{exp for value in set1}
'''
res = {value for value in range(1, 23)}
print(res)

# 字典推導式
'''
{key:value for key, value in item}
'''
d1 = {key: value for key, value in zip(['a', 'b', 'c'], (9, 18, 90))}
print(d1)

s = "sjksdaaafadsfa"
d2 = {ch: s.count(ch) for ch in s}
print(d2)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章