列表、字典、集合推导式用法介绍

 

学习了几天,对于布尔值,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)

 

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