zoukankan      html  css  js  c++  java
  • 数据的迭代(1.1)



    列表

    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}
      




  • 相关阅读:
    内存分配小问题
    从MACHINE_START开始
    Linux驱动学习(二)
    9,斐波那契数列 6,旋转数组找最小 8青蛙跳台阶 JAVA实现
    数组练习题
    类的练习
    for循环练习题
    封装练习题
    Facebook成为Apache基金会的白金赞助商
    Visual Studio 2010
  • 原文地址:https://www.cnblogs.com/wangjiale1024/p/10287370.html
Copyright © 2011-2022 走看看