1,""""列表:可以存放不同类型的数据"""
a = [1,2,3,4,5,"上山打老虎"]
for each in a:
print(each)
print(a[0],a[5])
for i in range(0,6):
print(a[i])
length = len(a)
print(a[length - 1])
2."""列表切片:一次性可以获取多个元素"""
print(a[0:3])
print(a[:3])
print(a[0:6:3])
3,
print(a[5:0:-1])
print(a[0])
print(a[::-1])
4,"""列表的增删改查"""
"""插:append(),extend(迭代对象),切片,insert(A,B)"""
heros = ["钢铁侠","绿巨人"]
heros.append("黑寡妇")
heros.extend(["绿皮书","雷神","灭霸"])
print(heros)
"""用切片的形式也可以实现插入,但是不如append(),extend()方法好理解"""
s = [1,2,3,4,5]
s[len(s):] = [6]
print(s)
s[len(s):] = [7,8,9]
print(s)
"""实现任意位置插入元素:insert()方法,insert(A,B):在A位置插入元素B"""
s = [1,3,4,5]
s.insert(1,2)
print(s)
s.insert(0,0)
s.insert(len(s),6)
print(s)
""""删:remove(元素),pop(下标),clear(整个列表)"""
heros.remove("灭霸")
heros.pop(2)
print(heros)
heros.clear()
print(heros)
"""改"""
heros = ["蜘蛛侠","绿巨人","美国队长"]
heros[0] = "猪八戒"
heros[1:] = ["孙悟空","王昭君","墨子","兰陵王"]
print(heros)
nums = [3,2,4,2,6,8,3,9,1]
nums.reverse()
print(nums)
nums.sort()
print(nums)
nums.reverse()
print(nums)
nums = [3,2,4,2,6,8,3,9,1]
nums.sort(reverse = True)
print(nums)
print(nums.count(3))
print(heros.index("王昭君"))
nums1 = nums.copy()
print(nums1)
nums2 = nums[:]
print(nums2)
nums3 = nums
print(nums3)
s = [1,2,3]
t = [4,5,6]
print((s + t),'\n',(s * 3))
"""创建二维列表(嵌套列表,矩阵)"""
a = [[1,2,3],[4,5,6],[7,8,9]]
a = [[1,2,3],
[4,5,6],
[7,8,9]]
for i in a:
for each in i:
print(each)
for i in a:
for each in i:
print(each,end = ' ')
print()
print(a[1])
print(a[1][2])
"""is运算符"""
a = 'dong'
b = 'dong'
print(a is b)
a = [1,2,3]
b = [1,2,3]
print(a is b)
"""所以创建一个初始为0的二维列表的方法如下:这里比较难理解"""
a = [0] * 6
for i in range(6):
a[i] = [0] * 6
print(a)
6,"""浅拷贝 :只适用于一维,嵌套列表的话内层只能引用而不能拷贝"""
x = [1,2,3]
y = x
x[1] = 1
y = x.copy()
7,"""深拷贝"""
import copy
x = [[1,2,3],[4,5,6],[7,8,9]]
y = copy.copy(x)
x[1][1] = 1
print(x,y)
x = [[1,2,3],[4,5,6],[7,8,9]]
y = copy.deepcopy(x)
x [1][1] = 1
print(x,y)
8,"""列表推导式:列表推导式的结果一定是一个列表"""
"""用for循环实现列表元素乘2"""
x = [1,2,3,4,5]
for i in range(len(x)):
x[i] *= 2
print(x)
x = [1,2,3,4,5]
"""以下写法不对"""
for i in x:
i *= 2
print(i)
print(x)
"""用列表推导式实现"""
x = [1,2,3,4,5]
x = [i * 2 for i in x]
print(x)
"""列表推到式也可以对字符串操作"""
y = [i * 2 for i in "dongjian"]
print(y)
code = [ord(i) for i in "dongjian"]
print(code)
"""用列表推导式取出矩阵的某一列"""
a = [[1,2,3],
[4,5,6],
[7,8,9]]
column = [row[1] for row in a]
print(column)
diag = [a[i][i] for i in range(len(a))]
print(diag)
"""for循环创建二维列表"""
a = [0] * 3
for i in range(3):
a[i] = [0] * 3
"""用列表推导式创建二维列表"""
a = [[0] * 3 for i in range(3)]
print(a)
"""用if语句用以筛选:执行顺序,先for循环,再if,最后执行表达式i"""
a = [i for i in range(10) if i % 2 == 0]
print(a)
"""找出以F开头的字母:列表表达式 + if条件判断"""
words = ["Frank","Frequence","flat","abandon","Manage","diligent","Flu"]
a = [word for word in words if word[0] == 'F']
print(a)
a = []
for word in words:
if word[0] == 'F':
a.append(word)
print(a)
9,"""用列表推导式的嵌套实现降维"""
a = [[1,2,3],[4,5,6],[7,8,9]]
flatter = [column for row in a for column in row]
print(flatter)
"""用普通的for循环实现降维"""
flatter = []
for row in a:
for column in row:
flatter.append(column)
print(flatter)
a = [x + y for x in "fishc" for y in "FishC"]
print(a)
_ = []
"""等价于"""
for x in "fishc":
for y in "FishC":
_.append(x + y)
print(_)
"""添加if判断语句"""
a = [[x,y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 == 0]
print(a)
"""等价于"""
a = []
for x in range(10):
if x % 2 == 0:
for y in range(10):
if y % 3 == 0:
a.append([x,y])
print(a)