Python学习-切片和迭代(七)

  • 切片
  • 迭代

一:切片

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
print(L[0:3])

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3

如果第一个索引是0,还可以省略, L[:3]

倒数取:

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
# 取倒数第一个元素
print(L[-1])
# 可以理解为-2,-1,0,0没有显示,['Bob', 'Jack'],倒数第一个元素的索引是-1
print(L[-2:])

间隔取:

#创建了一个0-20的数列
L = list(range(20))
#前10个数,每两个取一个,[0, 2, 4, 6, 8]
print(L[:10:2])
#所有数,每两个取一个,[0, 2, 4, 6, 8]
print(L[::5])

#list,tuple,字符串都可以这样使用

去掉首尾的空格:

扫描二维码关注公众号,回复: 11313250 查看本文章
# def trim(str):
#     # 拿第一个元素
#     if str[0:1] ==" ":
#         str = str[1:]
#     # 拿最后一个元素
#     if str[-1:] == " ":
#         str = str[:-1]
#     #这个的作用是去头去尾的空格后,还要继续判断新的头和尾是不是空格
#     if str[:1] != " " and str[-1:] != " ":
#         return str
#     else:
#         # 新的头和尾是空格,那就继续循环这样判断
#         return trim(str)


def trim(s):
    #拿第一个元素
    if s[:1]==' ':
        #继续递归(1-最后)
        return trim(s[1:])
    #拿最后一个元素
    elif s[-1:]==' ':
        #继续递归(1-倒数第二)
        return trim(s[:-1])
    else:
        return s

二:迭代

# 迭代是通过for ... in来完成的

#dict类型也可以,但不是按照list方式存储的,迭代出来顺序可能不一样
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
    print(key)

# 默认情况下,dict迭代的是key
# 如果要迭代value,可以用for value in d.values()
# 如果要同时迭代key和value,可以用for k, v in d.items()
#字符串也是可迭代对象
for ch in 'ABC':
# 判断一个对象是可迭代对象
# 不过这种方式在3.9用不了了好像
from collections import Iterable
print(isinstance([1,2,3], Iterable))
# 对list实现类似Java那样的下标循环
# Python内置的enumerate函数可以把一个list变成索引-元素对
for i, value in enumerate(['A', 'B', 'C']):
    print(i, value)

# for循环里,同时引用了两个变量
for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x,y)

附加:

#对于list
#一个空格
a = [ ]
print(len(a))
# 两个空格
b = [  ]
print(len(b))
# 空格在双引号里面
c = [' ']
print(len(c))
d = ['',' ']
print(len(d))

结果是0,0,1,2

# 使用迭代查找一个list中最小和最大值,并返回一个tuple
def findMinAndMax(str):
    if len(str) == 0:
        return (None,None)
    elif len(str) == 1:
        return (str[0],str[0])
    else:
        max = str[0]
        min = str[0]
        for i in str:
            if max>i:
                if min>i:
                    min = i
            else:
                max = i
    return (min,max)

猜你喜欢

转载自blog.csdn.net/weixin_42717928/article/details/103076838