码迷,mamicode.com
首页 > 其他好文 > 详细

数据的迭代(1.1)

时间:2019-01-18 14:22:20      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:for   random   dom   item   append   产生   lambda   函数   打印   



列表

  1. filter + lambda函数
   >>> import random
   >>> l1 = [random.randint(-10, 10) for i in range(10)]
   >>> print(l1)
   [3, 8, -5, 4, -4, -5, -7, -8, -6, -7]
   >>> print(list(filter(lambda x: x>0, l1)))
   [3, 8, 4]
  1. 迭代器
  >>> print([x for x in l1 if x>0])
  [3, 8, 4]

集合

  1. 迭代器

    >>> s1 = set(random.randint(-10, 10) for i in range(10))
    >>> print(s1)
    {-10, -5, -1, 0, 3, 8, 9}
    >>> print({x for x in s1 if x >0})
    {8, 9, 3}

字典

  • 产生随机字典

        # 产生随机字典
        letters = ‘abcdefghijklmnopqrstuvwxyz‘
        l2 = []
        l1 = [0 for i in range(len(letters))]
        d1 = {}
        for got_num in range(len(letters)):
            temp_int = random.randint(got_num+1, len(letters)) - got_num # 表示第temp_int个0,从1开始
            current_num,i  = 0, -1
            while current_num < temp_int:
                i += 1
                current_num += 1 if l1[i] == 0 else 0
            # i 就是我们要找的位置
            l2.append(i)
            l1[i] = 1
    
        d1 = {letters[x]: random.randint(-10, 10) for x in l2}
        # 打印一下
        print(d1)
  • d1的迭代

    >>> d2 = {k:v for k,v in d1.items() if v>0}
    >>> print(d2)
        {‘a‘: 9,
         ‘b‘: 3,
         ‘c‘: 5,
         ‘d‘: 10,
         ‘f‘: 3,
         ‘i‘: 8,
         ‘j‘: 2,
         ‘n‘: 5,
         ‘v‘: 1,
         ‘w‘: 10,
         ‘x‘: 3}




数据的迭代(1.1)

标签:for   random   dom   item   append   产生   lambda   函数   打印   

原文地址:https://www.cnblogs.com/wangjiale1024/p/10287370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!