美文网首页
2018-07-29

2018-07-29

作者: 淡水t海边 | 来源:发表于2018-07-29 15:37 被阅读0次

如何判断一个一个对象是可迭代对象?

-------使用cellections下的Iterable类型来验证:

from collections import Iterable

>>> isinstance('abc', Iterable) # str是否可迭代

True

>>> isinstance([1,2,3], Iterable) # list是否可迭代

True

>>> isinstance(123, Iterable) # 整数是否可迭代

False


要实现对list下标和元素的同时循环,采用enumerate函数就可以把list变成索引-元素对

这样可以在for循环中同时使用索引和元素对:

for i, value in enumerate(['A', 'B', 'C']):

...    print(i, value)

...

0 A

1 B

2 C

for x, y in [(1, 1), (2, 4), (3, 9)]:

...    print(x, y)

...

1 1

2 4

3 9


问题描述:使用迭代查找一个list中的最大值和最小值,并返回一个tuple

#-*-coding:utf-8-*-

... def findMinAndMax(L):

...    if len(L) > 0:

...        max = L[0]

...        min = L[0]

...        for i in L:

...            if i >= max:

...                max = i

...            elif i <= min:

...                min = i

...        return(min,max)

...    return(None,None)

...

>>> #测试

... if findMinAndMax([]) != (None,None):

...    print('测试失败!')

... elif findMinAndMax([7]) != (7,7):

...    print('测试失败!')

... elif findMinAndMax([7,1]) != (1,7):

...    print('测试失败!')

... elif findMinAndMax([7,1,3,9,5]) != (1,9):

...    print('测试失败!')

... else:

...    print('测试成功!')

...

测试成功!


列表生成式以及仅偶数d的平方的确定;

[x * x for x in range(1,11) if x % 2 == 0]

[4, 16, 36, 64, 100]


两层循环:

[m + n for m in 'ABC' for n in 'XYZ']


将list中所有字符串变为小写:

L = ['Hello','World','IBM','Apple']

>>> [s.lower() for s in L]

['hello', 'world', 'ibm', 'apple']


列表生成器使用两个变量来生成list:

d = {'x':'A','y':'B','z':'C'}

>>> [k + '=' + v for k,v in d.items()]


列表生成器代码总结:

#!/usr/bin/env python3

... #-*-coding:utf-8-*-

...

>>> print([x * x for x in range(1,11)])

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> print([x * x for x in range(1,11) if x % 2 == 0])

[4, 16, 36, 64, 100]

>>> print([m + n for m in 'ABC' for n in 'XYZ'])

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

>>>

>>> d = {'x':'A','y':'B','z':'C'}

>>> print([k + '=' + v for k,v in d.items()])

['x=A', 'y=B', 'z=C']

>>>

>>> L = ['Hello','World','IBM','Apple']

>>> print([s.lower() for s in L])

['hello', 'world', 'ibm', 'apple']

相关文章

  • Linux File System Explanation

    Linux File System Explanation UpDate 2018-07-29 153286211...

  • rabbitmq报Heartbeat missing with

    2018-07-29 10:20:15.018 ERROR [rabbitmq-nio] c.r.c.impl.F...

  • 2018-08-15

    不断复习你的梦想 Jamie焦关注2018-07-29 00:51 · 字数 58 · 阅读 76 · Jami...

  • 原谅0729

    2018-07-29 《原 谅 》 -----献给天下的父母 董进宇 . 孩子 . 原谅我把你带到了这个...

  • 关于87-88节《时间管理100讲》听后笔记

    2018-07-29 一、既能录音又能手写的软件----Notability(手写) 建议在iPad上使用这款工具...

  • 2018-07-29

    10组~96~郭洁~读《如何阅读》体会 郭洁_2160 2018-07-29 07:58 · 字数 598 · 阅...

  • 云淡风轻

    云淡风轻。 故事or 2018-07-29 22:41 · 字数 290 · 阅读 0 · 日记本 一睁眼,看...

  • Maven + SpringBoot + Mybatis + M

    2018-07-29 注:首先,需要你已经安装了Mysql,并且创建User表 安装 MySQL 1. Windo...

  • 思源园记

    陈老牛A 2018-07-29 10:32·字数 1086·阅读 3·日记本 陈振民 图片发自简书App ...

  • 人间是道场,淤泥皆莲花

    人间是道场,淤泥皆莲花 人间是道场,淤泥皆莲花 小石侠 2018-07-29 20:10 · 字数 1094 · ...

网友评论

      本文标题:2018-07-29

      本文链接:https://www.haomeiwen.com/subject/lsdzmftx.html