美文网首页
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']

    相关文章

      网友评论

          本文标题:2018-07-29

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