- 切片
-
迭代
一:切片
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)