1遍历整个列表
1.1使用for循环遍历
items = [1,2,3,4,5,6,7]
for item in items:
print(item)
1.2拉链(zip)方法遍历
这种方法本质上还是for循环,只不过是在输出每一项之前都会输出一下该项的索引,如:
guns = ['m4','aug','ak47','ump9']
for i,v in zip(range(len(guns)),guns):
print(i,v)
输出:
0 m4
1 aug
2 ak47
3 ump9
1.3enumerate方法遍历
个人感觉和上面的zip方法很相似,不过可以传入起始索引,如:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))
print(list(enumerate(seasons, start=1)))
输出:
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
2创建数字列表
2.1使用range()函数
a = range(5)
print(a)
for b in a:
print(b)
输出:
range(0, 5)
0
1
2
3
4
这里可以看出来,range(n)就是等于range(0,n),即可以输出从0到n-1的数字,不输出n
2.2创建数字列表(list(range()))
numbers = list(range(1,10,3))
print(numbers)
输出:
[1, 4, 7]
2.3对数字列表执行简单的统计计算
digits = [1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))
输出:
0
9
45
2.4列表解析(利用已有列表,高效创建新列表的方式)
注:2.4参照此博文(https://www.cnblogs.com/liu-shuai/p/6098227.html)来写
2.4.1列出1~10所有数字的平方
普通方法:
square = []
for i in range(1,11):
square.append(i**2)
print(square)
列表解析:
square = [square ** 2 for square in range(1,11)]
print(square)
2.4.2列出1~10中大于等于4的数字的平方
普通方法:
L = []
for i in range(1,11):
if i>=4:
L.append(i**2)
print(L)
列表解析:
L = [i ** 2 for i in range(1,11) if i >= 4]
print(L)
2.4.3列出1~10所有数字的平方除以2的值
普通方法:
L = []
for i in range(1,11):
L.append(i**2/2)
print(L)
列表解析:
L = [i ** 2/2 for i in range(1,11)]
print(L)
2.2.4使用列表解析生成 9*9 乘法表
print('\n'.join([''.join(['%s*%s=%-2s '%(y,x,x*y)for y in range(1,x+1)])for x in range(1,10)]))
3.使用列表的一部分
3.1切片
phones = ['Huawei','MI','vivo','oppo','iPhone']
print(phones[:2])
print(phones[3:])
print(phones[-3:])
print(phones[:-2])
输出:
['Huawei', 'MI']
['oppo', 'iPhone']
['vivo', 'oppo', 'iPhone']
['Huawei', 'MI', 'vivo']
3.2遍历切片
for phone in phones[:3]:
print(phone)
输出:
Huawei
MI
vivo
3.3复制列表
foods = ['noodles','pizza','rice','cake']
foods_cp1 = foods[:]
foods_cp2 = foods#错误的复制列表的方法
print("foods_cp1:",foods_cp1)
print("foods_cp2:",foods_cp2)
foods.append('pancake')
print("\nafter append:")
print("foods",foods)
print("foods_cp1:",foods_cp1)
print("foods_cp2:",foods_cp2)
输出:
foods_cp1: ['noodles', 'pizza', 'rice', 'cake']
foods_cp2: ['noodles', 'pizza', 'rice', 'cake']
after append:
foods ['noodles', 'pizza', 'rice', 'cake', 'pancake']
foods_cp1: ['noodles', 'pizza', 'rice', 'cake']
foods_cp2: ['noodles', 'pizza', 'rice', 'cake', 'pancake']
如果我们只是简单的把foods赋值给food_cp,就不能得到两个列表,不是将foods的副本存储,这两个变量实技上是指向了同一个列表,因此当我们把新的元素加入foods时,foods_cp也会被加入相同的元素。通常情况下这并非我们想要的结果。因此要注意在复制列表的时候要用包含整个列表的切片来做。
网友评论