回顾一下py基础(lamada,迭代器,生成器)

lamada匿名函数:

python 使用lamada创建匿名函数
lamada拥有一个自己的命名空间,其只能访问自己的参数

a = lambda b,c:b+c
print(a(1,2))
a = lambda x,y:x*y+1
print(a(20,5))
传20,5 给a =》(20*5+1) = 101

lambda在调用的时候才对变量赋值,而不是定义的时候:

###lambda在运行的时候才调用其他变量,而不是定义的时候
num2 = 100
sum1 = lambda num1 : num1 + num2 ;
num2 = 10000
sum2 = lambda num1 : num1 + num2 ;
print( sum1( 1 ) )
print( sum2( 1 ) )
output :
10001
10001

直接通过lambda对(1, 2)排序

a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1])
output:
[(13, -3), (4, 1), (1, 2), (9, 10)]

global a 表示从全局变量哪到函数当中,这样就可以对这个全局变量进行修改了。

input()输入可以带上字符:

 

info = input("请输入")
print(info)

常见对象自省:

dir,查看一个对象的所有属性和方法。	
type,返回一个对象的类型。
inspect,查看一个模块的信息(inspect.getsource(hello)/(hello.hi))#直接查看源码
inspect.getabsfile(hello)  # 查看一个模块的路径

python的迭代器与生成器,迭代器是python最强大的功能之一:

1、迭代器是访问集合的一种方式,迭代器是一个可以记住遍历的位置的对象。
2、迭代器从集合的第一个元素开始访问,直到所有元素被访问完,迭代器只能往前不会后退。
3、迭代器的两种基本用法:iter()、next()。
4、可迭代对象是指其在创建的时候设立了__iter__方法,这样才能用迭代器。

example:
list1 = [5,1,3,7]
it = iter(list1) #创建一个list的迭代器
for i in it:
	print(i)	#遍历这个迭代器
print(next(it)) #输出这个迭代器
print(next(it))
print(next(it))
print(next(it))

a = [2,3]
b = [3,4]
c = zip(a, b) #打成迭代器
a,b = c
print(a)
print(b)

创建迭代器:

# -*- coding = UTF-8 -*-
class Student:
    def __iter__(self):
        self.a = 1
        return self

    def __next__(self):  # python2.x中使用next,python3.x中使用__name__
        x = self.a
        self.a += 10
        return x

if __name__ == "__main__":
    a = Student()
    it = iter(a)
    times = 0  # 这里这个迭代器只走10遍
    for counter, i in enumerate(it):
        if (counter == 10):
            break
        print('遍历迭代器',i)
    print(next(it))
    print(next(it))
    print(next(it))

在python中,使用yield的被称作生成器:

生成器是一个返回迭代器的函数,在调用生成器运行的过程中。
每次遇到yield时函数会暂停并保存当前的运行信息,返回yield值,并且在下次执行这个迭代器的时候,
函数会从上次断掉的地方再次执行。
比如读数据读时候,数据很大,一次读完内存顶不住,用迭代器只取前面部分。
例子:
# -*- coding = UTF-8 -*-
def f():
    for i in range(0,10):
        yield i

res = f()
print(next(res)) #next 拿出第一个yield
print(next(res))
print(next(res))
print(next(res))
打印:
0、1、2、3
表示中断把结果输出,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用ArrayList集合对其添加10个不同的元素,并使用四种遍历方式遍历该集合的示例代码: ```java import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { // 创建ArrayList集合 List<String> list = new ArrayList<>(); // 添加10个不同的元素 list.add("A"); list.add("B"); list.add("C"); list.add("D"); list.add("E"); list.add("F"); list.add("G"); list.add("H"); list.add("I"); list.add("J"); // 正常for循环遍历 System.out.print("正常for循环遍历:"); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + " "); } System.out.println(); // 应用索引遍历 System.out.print("应用索引遍历:"); for (int i : new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}) { System.out.print(list.get(i) + " "); } System.out.println(); // 使用遍历 System.out.print("使用遍历:"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } System.out.println(); // 使用增强for循环遍历 System.out.print("使用增强for循环遍历:"); for (String s : list) { System.out.print(s + " "); } System.out.println(); // 使用Lamada表达式(forEach)遍历 System.out.print("使用Lamada表达式(forEach)遍历:"); list.forEach(s -> System.out.print(s + " ")); System.out.println(); } } ``` 输出结果为: ``` 正常for循环遍历:A B C D E F G H I J 应用索引遍历:A B C D E F G H I J 使用遍历:A B C D E F G H I J 使用增强for循环遍历:A B C D E F G H I J 使用Lamada表达式(forEach)遍历:A B C D E F G H I J ``` 以上就是使用ArrayList集合并使用四种遍历方式遍历该集合的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值